我只是尝试使用Python Psycopg2模块的executeValues函数将新行插入到现有的Postgres数据库中。我正在使用它,因为将来我需要进行批量插入,但是现在我只测试一行。
以下是代码:
import psycopg2
from psycopg2.extras import *
# Connect to database
try:
conn = psycopg2.connect("dbname='test' user='postgres' host='localhost' password='serengeti'")
conn.autocommit = True
except:
print "I am unable to connect to the database"
cur = conn.cursor()
SQL = "INSERT INTO sample (id,name) VALUES %s"
valuesList = []
valuesList.append((5,'wolf'))
**The problem appears to be here somewhere**
valuesList.append(('(SELECT id FROM city WHERE name =''Boston'')','tiger'))
execute_values(cur,SQL,valuesList,template=None, page_size=1000000)
我得到的错误如下图所示:
'样品'是要插入的表。它包含两个字段:' id' (整数)和' name' (文本)。 '市'是同一数据库中的另一个表,其中包含' id'(整数)和' name'字段(文本),其中一行名称='波士顿'已经填充了。
我认为错误是在valuesList中的SELECT语句中的某处。
有人可以帮忙吗?
谢谢!