有時候我們會遇到這樣一個問題:執行mysql插入語句,語句執行成功,但是數據卻沒有被插入進去。這是因為我們在表中定義了自增主鍵,但是沒有提供插入數據時需要的主鍵值。
比如我們在表中定義了一個自增主鍵:
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
如果我們執行下面這個插入語句:
INSERT INTO test(name) VALUES('張三');
語句執行成功了,但是再執行下面這個查詢語句:
SELECT * FROM test;
發現沒有插入成功。
這是因為我們沒有提供插入時需要的主鍵值,而自增的主鍵值又是由mysql自動生成的。在這種情況下,我們需要使用mysql的LAST_INSERT_ID()函數來獲取剛剛插入進去的數據自增主鍵的值,并將其更新到表中。
修改插入語句為:
INSERT INTO test(id,name) VALUES(NULL,'張三');
在插入成功后執行下面這個語句即可更新表中自增主鍵的值:
UPDATE test SET id=LAST_INSERT_ID() where name='張三';
以上就是這個問題的解決方法,希望對大家有所幫助。
上一篇mysql插入某一列數據
下一篇css怎么設置漸變藍色