簡體   English   中英

MySQL中的自動增量列

[英]Auto increment column in mysql

我的表中有一個自動增量(id)列。如果我從表中刪除所有數據並將一個新數據插入到我的表中,它將繼續我的id還是從0開始?

這很容易測試。 是一個db <>小提琴。

我想提供一些解釋:

  • 如果delete所有行,則自動增量值不會更改。
  • 如果您truncate該表,則自動增量值將被重置。

通常,由於以下原因,截斷表是清空表的更好方法:

  • 截斷不會記錄事務。 因此,它更快。 (當然,如果要恢復數據,這可能是不利的。)
  • 截斷不會調用刪除觸發器。 (當然,如果您要運行這些功能,則可能是不利的。)
  • 截斷只是處理存儲,而不是獨立處理每一行。

MySql數據庫維護信息架構,保存下一個增量值。

select tab.TABLE_NAME, tab.AUTO_INCREMENT from information_schema.TABLES tab where tab.TABLE_SCHEMA = 'your_schema_name'; 

如果執行該查詢,它將顯示您的下一個auto_increment id值。

delete from table_name;

該查詢刪除所有數據,但不恢復自動增量列值....如果要將自動增量值恢復為1 ..執行truncate命令

truncate table table_name;  

您可以通過此查詢恢復Auto_increment值的另一種方法

ALTER TABLE table_name AUTO_INCREMENT = 1;

了解更多細節

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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