【发布时间】:2017-09-10 20:48:13
【问题描述】:
我在使用 psycopg2 在我的 psql db 上执行多个查询时遇到问题。示例:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import psycopg2
from psycopg2.extras import RealDictCursor
def CreateUser(user, mySchema):
conn = psycopg2.connect("dbname='postgres' user='root' password='somePassword' host='localhost'")
cur = conn.cursor()
cur.execute("""create user %s""" % (user))
conn.commit()
cur.close()
conn.close()
CreateSchema(user, mySchema)
def CreateSchema(user, mySchema):
conn = psycopg2.connect("dbname='postgres' user='root' password='somePassword' host='localhost'")
cur = conn.cursor()
cur.execute("""create schema %s authorization %s """ % (user,mySchema))
conn.commit()
cur.close()
conn.close()
def FetchUserInput():
userInput = raw_input("UserName")
mySchema = raw_input("SchemaName")
CreateUser(userInput, mySchema)
FetchUserInput()
在这种情况下,第二个查询失败并出现用户先前创建的错误不存在! 如果我只执行 CreateUser 函数,它工作正常。 如果我在 psql 中手动执行它,它工作正常。
当我在 CreateSchema 函数中打开第二个连接时,如果第一次提交没有在数据库上执行,这是没有意义的。
我做错了什么?
【问题讨论】:
标签: python postgresql psycopg2