搜尋

首頁  >  問答  >  主體

mysql 裡邊,自增長id,寫資料時,是先把資料寫進去,然後再給這條資料一個id,還是先給id,然後再把要插入的資料寫進去

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

伊谢尔伦伊谢尔伦2752 天前576

全部回覆(2)我來回復

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-18 10:53:19

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

    如下圖.資料庫有62行,自增值到了63.

    未指定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'));

    效果如下圖:

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-18 10:53:19

    沒去研究過,但我猜想是不是跟我們手動插入資料一樣,是一同寫入的。取得目前表id的最大值,加上設定的自增值,放入資料一同插入。 。 。 。

    回覆
    0
  • 取消回覆