我有桌子

tbl_invoice(invno,company_name,date,total) primary key(invno)


invno是自动递增的。还有另一张桌子

tbl_invoicelines(lineid,invno,productname,qty,unitprice,amount).
primary key(lineid,invno)


lineno是自动递增的

我应该如何给出我的MySql insert语句,以便即使有多个发票行也可以获得特定的invno发票?
我真的是编程新手,请帮忙。

最佳答案

您可以一个接一个地使用多个语句。

步骤1:
首先执行一条语句"insert into tbl_invoice ..."将行插入发票表中。在此插入中,请勿为invno指定值。数据库将自动选择一个。

第2步:
然后执行以下语句:"select LAST_INSERT_ID();"。这将为您提供数据库选择的ID作为invno。将SQL语句返回的ID存储到本地变量中。

步骤3:然后,您可以为tbl_invoicelines表执行多个insert语句,并使用在步骤2中获得的变量来构建SQL字符串。

在所有三个步骤中使用事务,以便如果其中一个步骤失败,则可以回滚并撤消所有三个步骤。

07-25 20:27