我需要检索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等解决方案。请帮忙 !
答案 0 :(得分:1)
不要使用直接SQL来插入记录,而是使用create
方法。它将返回您创建的记录的ID。