【发布时间】:2011-01-09 17:54:01
【问题描述】:
理想情况下,我希望能够执行以下操作:
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 - OID 或声明为 SERIAL 的字段的值?
-
我不知道。我是新来的。这是一个django项目,django根据我的模型用syncdb搭建postgres数据库。我不确定 django 是否在表创建期间自动声明 OID。除非另有说明,否则我需要每一行的主键,它由 django 自动生成为“id”。我会做一些阅读。
标签: django postgresql psycopg2