我有以下查询:

insert into A select last_insert_id(),B.id,C.name,C.address,
from sample_table C join other_table B on B.phoneNumber=C.phoneNumber;


我收到重复的主键值= 1错误(应由last_insert_id()生成)。
这是表的结构

A
id|phoneNumber|name|address
---------------------------

B
id|phoneNumber|email
--------------------

C
id|phoneNumber|name|address
---------------------------


有人可以帮我为什么last_insert_id()总是返回1。

详细信息:表A,B和C中的id字段已自动填充。

最佳答案

如您所知LAST_INSERT_ID()表示AUTO_INCREMENT列的插入值。NULL表示AUTO_INCREMENT强制生成新值。如果使用NULL而不是last_insert_id()怎么办:

INSERT INTO A
SELECT NULL, B.id,C.name,C.address,
FROM sample_table C JOIN other_table B ON B.phoneNumber=C.phoneNumber;


有什么原因必须使用last_insert_id()?还是只是一个问题?

关于mysql - mysql中插入查询的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20230608/

10-12 23:24