这是在ms sqlserver中是这么创建的
create table tablename(
ID int identity(1,1) NOT NULL -- identity(1,1) 就表示的是自增
)
第一种方式:创建table的时候直接创建一个自增长的标识列,以这个标识列为编号;
第二种方式:查询table的时候自动生成排序编号,可以使用row_number() over(),比如
SELECT *, Row_Number() OVER (partition by deptid ORDER BY salary desc) rank FROM employee
使用 identity(a,b)
a为起始值,b为每次自增的数量
sql server中:
create table aa
(
a int identity(1,1),
b varchar(20)
)
oracle采用序列+触发器
CREATE SEQUENCE SEQname
INCREMENT BY 1
START WITH 1
MAXVALUE 99999999
/
CREATE TRIGGER TRGname
BEFORE INSERT ON table_name
REFERENCING
NEW AS :NEW
FOR EACH ROW
Begin
SELECT SEQname.NEXTVAL
INTO :NEW.FIELDname
FROM DUAL;
End;
create table aa
(
a int identity(1,1),
b varchar(20)
)