我正在尝试确保我的主键自动递增。下面的代码是我到目前为止所尝试的。
create or replace trigger field_null
before insert on table
for each row
begin
if :new.number_id is null then
select number_id_SEQ.nextval into :new.number_id from table;
end if;
end;
答案 0 :(得分:1)
而不是select select中的表,尝试使用dual。尝试使用此常规触发器语法为自动增量列
创建触发器CREATE OR REPLACE TRIGGER %triggername%
BEFORE INSERT ON %tablename% FOR EACH ROW
BEGIN
SELECT %seqname%.NEXTVAL
INTO :NEW.%columnname%
FROM DUAL;
END;
%seqname%
将替换为序列名称。
%triggername%
将替换为触发器的名称。
%columnname%
将替换为关联列的名称。
要创建序列,您可以使用以下语法: -
CREATE SEQUENCE %seqname%
START WITH 1
INCREMENT BY 1;