我有一张桌子
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
的发票?
我真的很喜欢编程。请帮助。
答案 0 :(得分:0)
您一个接一个地使用多个语句。
第1步:
首先执行语句"insert into tbl_invoice ..."
以将行插入发票表中。在此插入中,不要为invno指定值。一个将由数据库自动选择。
第2步:
然后执行以下语句:"select LAST_INSERT_ID();"
。这将为您提供数据库选择为invno的ID。将SQL语句返回的ID存储到本地变量中。
步骤3:然后,您可以为tbl_invoicelines表执行多个insert语句,使用您在步骤2中获得的变量构建SQL字符串。
围绕所有三个步骤使用事务,以便在其中一个步骤失败时,您可以回滚并撤消所有这三个步骤。