在MySQL中使用AUTO_INCREMENT列


讓我們瞭解如何在MySQL中使用AUTO_INCREMENT列:

AUTO_INCREMENT屬性用於為新行生成唯一的識別符號。讓我們看看這個語句是如何工作的。在此之前,請考慮以下查詢:

查詢

CREATE TABLE tableName (
   id MEDIUMINT NOT NULL AUTO_INCREMENT,
   name CHAR(30) NOT NULL,
   PRIMARY KEY (id)
);
INSERT INTO tableName (name) VALUES
(‘val1’),('val2'),('val3'),
('val4');
SELECT * FROM tableName;

輸出

+----+---------+
| id | name    |
+----+---------+
| 1  | val1    |
| 2  | val2    |
| 3  | val3    |
| 4  | val4    |
+----+---------+

在上面的查詢中,沒有為“AUTO_INCREMENT”列指定值,因此MySQL自動為“id”列分配了一系列數字。也可以顯式分配值0,以便數字序列從0開始。只有在未啟用“NO AUTO VALUE ON ZERO”SQL模式時才能這樣做。

如果將列宣告為“NOT NULL”,則可以為該列分配NULL以生成一系列數字。

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

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

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

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

  • AUTO_INCREMENT列需要被索引。這意味著它可以是主鍵或唯一索引。

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

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

更新於:2021年3月9日

120 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.