在SQL中使用ALTER添加AUTO_INCREMENT

时间:2018-12-31 17:53:29

标签: sql oracle11g auto-increment alter-table

我一直试图在创建的表上添加 AUTO_INCREMENT ,但是ALTER表查询不起作用

我的桌子: My Table Description

查询和错误: enter image description here

还有

ALTER TABLE professor ADD sno INT IDENTITY;

不起作用

1 个答案:

答案 0 :(得分:1)

可以请您尝试:

alter table professor add sno integer generated by default on null as identity;

编辑:对不起,OP要求的是11g,因为上面的代码在12点以后可以工作。

然后您需要使用序列。请看下面:

ALTER TABLE professor ADD sno INT;
CREATE SEQUENCE dept_seq START WITH 1;

您需要为序列设置触发器,例如:

CREATE OR REPLACE TRIGGER dept_bir 
BEFORE INSERT ON departments 
FOR EACH ROW

BEGIN
  SELECT dept_seq.NEXTVAL
  INTO   :new.id
  FROM   dual;
END;

参考:How to create id with AUTO_INCREMENT on Oracle?