在理想情况下,我想能够做这样的事情:

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top