在 sql 中使用 ALTER 添加 AUTO_INCREMENT
Adding AUTO_INCREMENT using ALTER in sql
我一直在尝试在创建的 table 上添加 AUTO_INCREMENT,但是 ALTER table 查询不起作用
我的Table:
查询和错误:
还有
ALTER TABLE professor ADD sno INT IDENTITY;
不工作
你能试试吗:
alter table professor add sno integer generated by default on null as identity;
编辑:抱歉,OP 要求 11g,因为上面的代码在 12 之后有效。
那你就需要用到sequence了。请看下面:
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?
我一直在尝试在创建的 table 上添加 AUTO_INCREMENT,但是 ALTER table 查询不起作用
我的Table:
查询和错误:
还有
ALTER TABLE professor ADD sno INT IDENTITY;
不工作
你能试试吗:
alter table professor add sno integer generated by default on null as identity;
编辑:抱歉,OP 要求 11g,因为上面的代码在 12 之后有效。
那你就需要用到sequence了。请看下面:
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?