SQL——AUTO INCREMENT(字段自增)

时间:2022-06-06 06:17:44

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 序列的下一个数字。