题
在理想情况下,我想能够做这样的事情:
id_of_new_row = cursor.lastrowid()
,其中我得到的新创建或修改行的id。但是,这是不是可以通过psycopg2。可替换地,我试图这样:
id_of_new_row = cursor.execute('INSERT INTO this_table (value1, value2, value3) VALUES (%s, %s, %s) RETURNING id', (some_value1, some_value2, some_value3))
这是不行的,可能是因为它不知道该ID直到提交由...
帮助!
解决方案
相信它会,它会知道这个ID一旦命令完成,这是怎么回被实现。您需要虽然实际取水的时候,所以是这样的:
cursor.execute("INSERT INTO .... RETURNING id")
id_of_new_row = cursor.fetchone()[0]
应该在你的情况下工作。
其他提示
在PostgreSQL上RETURNING作品> = 8.2
不隶属于 StackOverflow