MySQL AUTO_INCREMENT 及示例
让我们了解 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()”函数或使用“mysql_insert_id()”(这是一个 C API 函数)检索最近自动生成的“AUTO_INCREMENT”值。
这些函数是特定于连接的,这意味着它们的返回值不受执行插入操作的其他连接的影响。
可以使用“AUTO_INCREMENT”列的最小整数数据类型,该类型足够大以容纳用户所需的最大序列值。
当列达到数据类型的上限范围时,会尝试再次生成一系列数字。但这会失败。
因此,如果可能,请使用 UNSIGNED 属性,以便在列 AUTO_INCREMENT 值中允许更大的值范围。
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP