如何使用OpenERP在Postgresql中获取最后一个插入的id

Zec*_*eck 3 python postgresql openerp

我有一个插入查询,我想在OpenERP中获取最后一个插入的id.这是代码:

query = "INSERT INTO foo SELECT * FROM bar"
cr.execute(query) # cr => cursor
Run Code Online (Sandbox Code Playgroud)

如何获取最后插入的ID?插入是空的时候发生了什么?

小智 7

查看RETURNING子句.

INSERT INTO table [ ( column [, ...] ) ]
    { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query }
    [ RETURNING * | output_expression [ AS output_name ] [, ...] ]
Run Code Online (Sandbox Code Playgroud)

在表分发器中插入一行,返回DEFAULT子句生成的序列号:

INSERT INTO distributors (did, dname) VALUES (DEFAULT, 'XYZ Widgets')
   RETURNING did;
Run Code Online (Sandbox Code Playgroud)