您的位置:首頁技術文章
文章詳情頁

mysql 里邊,自增長id,寫數據時,是先把數據寫進去,然后再給這條數據一個id,還是先給id,然后再把要插入的數據寫進去

瀏覽:85日期:2022-06-12 17:49:45

問題描述

mysql 里邊,自動增長的id , 現在如果往里邊寫一條數據,里邊的具體過程,是先把數據寫進去,然后再給這條數據一個id,還是先給id,然后再把要插入的數據寫進去。好奇一下

問題解答

回答1:

MYSQL已經算好了下次需要填寫的自增ID了

如下圖所示.數據庫有62行,自增值到了63.

mysql 里邊,自增長id,寫數據時,是先把數據寫進去,然后再給這條數據一個id,還是先給id,然后再把要插入的數據寫進去

未指定ID則MYSQL自己填寫,如果填寫小于自動遞增,則報錯!如果填寫大于自動遞增,則自動遞增變成填寫數+1

獲取插入ID:MYSQLI : mysqli_insert_id方法PDO : PDO::lastInsertId方法MYSQL : mysql_insert_id方法

其中MYSQL方式連接數據庫已棄用,可能在未來版本移除

下面這條SQL可以實現你要的需求,但是我不確定這么干好不好,還有數據結構設置成這樣,真的好嗎?

INSERT INTO sta_log_fun(`FCNAME`,`STATUS`) VALUES(’WOQU’,(SELECT auto_increment FROM information_schema.`TABLES` WHERE TABLE_SCHEMA=’test2’ AND TABLE_NAME=’sta_log_fun’));

效果如下圖:mysql 里邊,自增長id,寫數據時,是先把數據寫進去,然后再給這條數據一個id,還是先給id,然后再把要插入的數據寫進去

回答2:

沒去研究過,但是我猜想是不是和我們手動插入數據一樣,是一同寫入的。獲取當前表id的最大值,加上設定的自增值,放入數據一同插入。。。。

国产综合久久一区二区三区