簡體   English   中英

LAST_INSERT_ID在插入查詢中返回0

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM