如何在 MySQL 中設定初始值和自動遞增?


AUTO_INCREMENT 屬性用於為新行生成唯一的標識。如果某列宣告為“NOT NULL”,則可以為該列分配 NULL 以生成一系列數字。

當任何值插入到 AUTO_INCREMENT 列時,該列將設定為該值,並且序列也將重置,以便它自動生成值,按從最大列值開始的順序範圍。

可以更新現有的“AUTO_INCREMENT”列,這也會重置“AUTO_INCREMENT”序列。可以使用 SQL 中的“LAST_INSERT_ID()”函式或使用“mysql_insert_id()”(這是一個 C API 函式)來檢索最近自動生成的“AUTO_INCREMENT”值。

這些函式是特定於連線的,這意味著它們的返回值不受執行插入操作的其他連線的影響。“AUTO_INCREMENT”列可以使用最小的整數資料型別,該型別足夠大以容納使用者所需的最高序列值。

AUTO_INCREMENT 的規則

使用 AUTO_INCREMENT 屬性時,需要遵循以下規則:

  • 每個表只有一個 AUTO_INCREMENT 列,其資料型別通常為整數。

  • AUTO_INCREMENT 列需要被索引。這意味著它可以是 PRIMARY KEY 或 UNIQUE 索引。

  • AUTO_INCREMENT 列必須具有 NOT NULL 約束。

  • 當 AUTO_INCREMENT 屬性設定為某列時,MySQL 會自動為該列新增 NOT NULL 約束。

如果尚未向表中新增 id 列,則可以使用以下語句:

ALTER TABLE tableName ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT, ADD INDEX (id);

如果 id 列已存在,則可以使用以下命令:

ALTER TABLE tableName AUTO_INCREMENT=specificValue;

這裡,tableName 指的是需要設定“AUTO_INCREMENT”列的表的名稱。“specificValue”指的是使用者指定“AUTO_INCREMENT”值開始的整數。

更新於:2021年3月9日

2K+ 閱讀量

開啟你的職業生涯

透過完成課程獲得認證

立即開始
廣告