我有桌子
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字符串。
在所有三个步骤中使用事务,以便如果其中一个步骤失败,则可以回滚并撤消所有三个步骤。