我有一系列要插入数据库的记录,但数据库的结构需要一种特殊的方法:
BEGIN;
table contact -> firstname,lastname
table company -> name
table contact_company_vs -> contact_id,company_id (THESE TWO ARE LAST_INSERT_IDs FROM first two inserts)
COMMIT;
怎么做?我应该通过一个接一个地插入几个插件来限制自己存储变量的php功能吗?
答案 0 :(得分:1)
实际上你可以用php或者用sql
来做到这一点<强> PHP 强>
<强> SQL 强>
我更喜欢使用存储过程:
declare id1 bigint default 0;
declare id2 bigint default 0;
insert1 ... ;
SELECT LAST_INSERT_ID() into id1;
insert2 ... ;
SELECT LAST_INSERT_ID() into id2;
insert into contact_company_vs values(id1, id2);
select id1, id2;
这样的存储过程甚至会将生成的ID返回到逻辑