本文主要介绍 SQL(Structured Query Language)中的自增(AUTO_INCREMENT)字段的相关知识。
1 概述
AUTO_INCREMENT 会在新记录插入表中时,生成一个唯一的数字。
如果希望在每次插入新记录时,自动地创建主键字段的值,那么就可以在表中创建一个 AUTO_INCREMENT 字段。
2 用法
例如,使用下列语句创建表 customers,同时将主键 customer_id 设置为自增字段,命令如下:
mysql> create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
Query OK, 0 rows affected (0.03 sec)
3 说明
1. 如果把“NULL”插入到 AUTO_INCREMENT 数据列里,MySQL 将自动生成下一个序列编号。序列编号从 1 开始,并以“1”为基数递增;
2. 把“0”插入 AUTO_INCREMENT 数据列的效果,与插入“NULL”值一样,但不建议这样做,最好还是直接插入“NULL”值;
3. 在插入记录时,如果没有为 AUTO_INCREMENT 数据列明确地指定一个数值,则等同插入“NULL”值;
4. 在插入或更新记录时,如果为 AUTO_INCREMENT 数据列明确指定了一个数值,则会出现两种情况:情况一,如果插入的值与已有的编号重复,则会出现错误信息,因为 AUTO_INCREMENT 数据列的值必须是唯一的;情况二,如果插入的值大于现有编号的值,则会把该值插入到数据列中,并使 AUTO_INCREMENT 数据列的下一个编号从这个新的编号值开始递增(即跳过了一些编号)。