我有以下查询:
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/