是否可以重新分配不同的last_insert_ids mysql用户变量?

问题描述

表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 (将#修改为@)