使用Psycopg2 ExecuteValues

时间:2018-01-29 09:32:16

标签: python sql postgresql psycopg2 psycopg

我只是尝试使用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)

我得到的错误如下图所示:

error

'样品'是要插入的表。它包含两个字段:' id' (整数)和' name' (文本)。 '市'是同一数据库中的另一个表,其中包含' id'(整数)和' name'字段(文本),其中一行名称='波士顿'已经填充了。

我认为错误是在valuesList中的SELECT语句中的某处。

有人可以帮忙吗?

谢谢!

0 个答案:

没有答案