[英]LAST_INSERT_ID returns 0 in an insert query
請嘗試將最后一個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 |
請問我做錯了什么。 會很高興知道的,在此先感謝
您不能使用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()
根據MySQL文檔 , LAST_INSERT_ID()
返回最近執行的INSERT語句為AUTO_INCREMENT列設置的生成值。 因此,您需要以下順序:insert->獲取最后的插入ID-> update。 這是代碼:
INSERT INTO table (char, name) VALUES (0, 'KOKO')
UPDATE table SET `char` = LAST_INSERT_ID() WHERE `ID` = LAST_INSERT_ID()
但是事實證明,列char
重復了列ID
,這可能表示錯誤的DB結構。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.