从PostgreSQL文档中,如果您在不指定模式的情况下执行INSERT,则它应该是public模式。PostgreSQL架构“www”不存在?
conn = psycopg2.connect(dbname = 'orion',
host = 'localhost',
port = 5432,
user = 'earthling',
password = 'mysupersecretpassword')
sql = conn.cursor()
def INSERT(table, info, text):
date = datetime.date.today()
query = "INSERT INTO %s (info, text, date) " \
"VALUES (%s, %s, %s)" %(table, info, text, date)
sql.execute(query)
INSERT("main", "www.capecod.edu", "test")
出于某种原因,我看到以下错误?
psycopg2.ProgrammingError: schema "www" does not exist
这不会像书面的那样工作。你必须自己插入字符串,因为psycopg2不知道它是一个标识符而不是文字。 –
@CraigRinger谢谢,我没有抓到。实际上,您可以将表名作为参数传递,您只需要更加谨慎......我将编辑答案。 –
在名称周围添加''后,似乎只有工作,我没有看到我的表中的条目?这是因为我需要使用参数总是?或者,也许日期需要PostgreSQL风格而不是Python风格? – htmlfarmer