1、SQLServer
创建时
列名 INTEGER IDENTITY(1, 1) # 第一个1为开始值,第二个为步长
添加时(先删除要添加自增的列,适合没有添加数据的表)
ALTER TABLE 表名 DROP COLUMN 列名
ALTER TABLE 表名 ADD 列名 INTEGER IDENTITY(1, 1)
添加时(适用于有数据的表)
DECLARE @I INTEGER
SET @I = 0 # 这里是@i的初始值,不是列的初始值,列要比@i多1
UPDATE TEST SET @I = @I + 1, 列名 = @I # 注意这里的初始值为0 + 1 = 1
2、MySQL
创建时
列名 INTEGER AUTO_INCREMENT
添加时
ALTER TABLE 表名 MODIFY 列名 INTEGER AUTO_INCREMENT
3、PostgreSQL
创建时
列名 SERIAL #4字节,默认为整型
添加时
CREATE SEQUENCE AUTO_INCREMENT
START WITH 1 # 初始值
INCREMENT BY 1 # 增加值
NO MINVALUE
NO MAXVALUE
CACHE 1
ALTER TABLE 表名 ALTER COLUMN 列名 SET DEFAULT NEXTVAL('AUTO_INCREMENT')