问题描述
表a与表b具有一对多关系。
table a (id)
table b (id,aId -> a.id)
表a和表b都有自动递增的ID。
我在一次调用中运行以下语句:
insert into a values ();
set @id = last_insert_id();
insert into b (aId) values (@id);
insert into a values ();
set @id = last_insert_id();
insert into b (aId) values (@id);
insert into a values ();
set @id = last_insert_id();
insert into b (aId) values (@id);
...这是结果:
select * from b
id aId
1 3
2 3
3 3
这不是我所期望的。这是我希望看到的:
id aId
1 1
2 2
3 3
因此,似乎只使用了最后一个last_insert_id?经过一些试验,如果每次插入后使用不同的变量名,我都能得到想要的结果。
insert into a values ();
set @id1 = last_insert_id();
insert into b (aId) values (@id1);
insert into a values ();
set @id2 = last_insert_id();
insert into b (aId) values (@id2);
insert into a values ();
set @id3 = last_insert_id();
insert into b (aId) values (@id3);
但是我希望只有一个变量名,并根据需要顺序重新分配。
这可能吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)