在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約束。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP