获取openerp中最后插入的记录的id值

时间:2013-09-05 02:39:06

标签: openerp

我需要检索account.analytic.line中最后插入记录的每个id,以便可以将该id的值插入hr_analytic_timesheet中的line_id,以便在hr_analytic_timesheet中显示插入account.analytic.line中的记录到表中。这是我的代码:

project_obj = self.pool.get('notebook.project').search(cr, uid, [('project_id','=', project_sheet)])
        for p in self.pool.get('notebook.project').browse(cr, uid, project_obj):
            cr.execute('insert into account_analytic_line (account_id,user_id,unit_amount,amount,product_id,product_uom_id,general_account_id,journal_id,name,date,to_invoice) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) returning last_insert_id of account_analytic_line into hr_analytic_timesheet (line_id) where last_insert_id = %s', (p.account_id,p.user_code,p.unit_amount,p.amount,p.product_id,p.product_uom_id,p.general_account_id,p.journal_id,p.desc,p.date,p.to_invoice))
        return res

我尝试了上面的代码,但它给了我错误元组索引超出范围。 我在网站上搜索过,但只找到了mySQL的解决方案,所以我不确定如何应用Duplicate Key Last Insert ID等解决方案。请帮忙 !

1 个答案:

答案 0 :(得分:1)

不要使用直接SQL来插入记录,而是使用create方法。它将返回您创建的记录的ID。