在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