AUTO INCREMENT -- 在新记录插入表中时生成一个唯一的数字。插入表数据时,该字段不需规定值。
在每次插入新记录时,自动地创建主键字段的值。在表中创建一个 auto-increment 字段。
MySQL:AUTO_INCREMENT
CREATE TABLE tableName
(
col int NOT NULL AUTO_INCREMENT,
PRIMARY KEY (col)
)
默认地,AUTO_INCREMENT 的开始值是 1,每条新记录递增 1。
使AUTO_INCREMENT序列以其他的值起始:ALTER TABLE tableName AUTO_INCREMENT=100
SQLServer:IDENTITY
CREATE TABLE tableName
(
col int PRIMARY KEY IDENTITY,
)
默认地,IDENTITY 的开始值是 1,每条新记录递增 1。
使"col" 列以 20 起始且递增 10,把 IDENTITY 改为 IDENTITY(20,10)
Oracle:
须通过 sequence 对创建 auto-increment 字段(该对象生成数字序列)。
CREATE SEQUENCE seqName MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10
上面的代码创建名为 seqName 的序列对象,它以 1 起始且以 1 递增。该对象缓存 10 个值以提高性能。CACHE 选项规定了为了提高访问速度要存储多少个序列值。
要在表中插入新记录,须使用 nextval 函数(该函数从 seqName 序列中取回下一个值):
INSERT INTO tableName (col,col1,col2) VALUES (seqName.nextval,'Lars','Monsen') -- "col" 的赋值是来自 seqName 序列的下一个数字。