Oracle 自动递增触发器
我有一个车辆表,其主键Vehicle_No是Varchar2类型,因此我触发了自动增量,但它显示错误Oracle 自动递增触发器,oracle,plsql,triggers,sequence,auto-increment,Oracle,Plsql,Triggers,Sequence,Auto Increment,我有一个车辆表,其主键Vehicle_No是Varchar2类型,因此我触发了自动增量,但它显示错误 create sequence seq start with 1000 increment by 1; create or replace trigger vehicles Before Insert On Vehicle For Each Row If (:New.Vehicle_No is NULL) Then Select seq.nextval INTO :New.Vehicl
create sequence seq start with 1000 increment by 1;
create or replace trigger vehicles
Before Insert On Vehicle
For Each Row
If (:New.Vehicle_No is NULL)
Then
Select seq.nextval INTO :New.Vehicle_No from dual;
End if;
End;
语法中缺少部分(begin
);应该是
CREATE OR REPLACE TRIGGER vehicles
BEFORE INSERT
ON Vehicle
FOR EACH ROW
BEGIN
IF :New.Vehicle_No IS NULL
THEN
SELECT seq.NEXTVAL INTO :New.Vehicle_No FROM DUAL;
END IF;
END;
除此之外,似乎还可以。但是,如果您使用的是一个序列(它是一个数字),为什么主键列varchar2
?“它显示错误”对我们没有多大帮助。我们甚至不知道这些是编译错误还是运行时错误(我们无法访问您的模式,因此无法生成或运行您的代码)。请在问题中包含错误堆栈。如果这些是编译错误,您可以使用select*from user\u errors,其中type='TRIGGER'和name='VEHICLES'
列出它们。