请我尝试将最后一个ID插入mysql中同一行的不同列。这就是我试过的
Insert Query
"INSERT INTO table(char,name) VALUES (LAST_INSERT_ID(),'KOKO')"
This is the Output
ID | char | name |
1 | 0 | KOKO |
但是,我希望当插入一行时,列char
也将插入ID
值;我期待什么
ID | char | name |
1 | 1 | KOKO |
请问我做错了什么。很高兴知道,提前谢谢
答案 0 :(得分:0)
您不能使用LAST_INSERT_ID()
并插入同一个交易,因为LAST_INSERT_ID()
在插入之前不知道最后一个插入ID的值
请尝试使用更新:
INSERT INTO table(char,name) VALUES (0,'KOKO')
UPDATE table
SET char = LAST_INSERT_ID()
WHERE ID = LAST_INSERT_ID()
答案 1 :(得分:0)
根据MySQL documentation,LAST_INSERT_ID()
返回由最近执行的INSERT语句为AUTO_INCREMENT列设置的生成值。因此,您需要以下序列:insert - >获取最后一个插入ID - >更新。这是代码:
INSERT INTO table (char, name) VALUES (0, 'KOKO')
UPDATE table SET `char` = LAST_INSERT_ID() WHERE `ID` = LAST_INSERT_ID()
但事实证明,列char
重复列ID
,这可能表示错误的数据库结构。