关于oracle11g创建表自增主键触发器ora-04098:触发器无效且未通过重新验证问题
在plsql中:假如在网上直接ctrl c+ctrl v 到plsql中的sql窗口中会出现ora-04098:触发器无效且未通过重新验证问题,需要手敲一遍,千万不能复制粘贴直接用,可能创建的trigger不被识别会出现以下的问题:
并且
小红叉
手敲的不会出现红叉
示例:::
--创建表
create table Employee(
id number(6) primary key,
salary number(10));
--创建sequence:
--触发器从1开始
--步长为1:就是每插入一条数据id+1
create sequence employee_id_sequence
start with 1
increment by 1
nomaxvalue
nocache;
--创建触发器:
create or replace trigger Emp_id_autoincrement before
insert on Employee for each row
when (new.id is null)
begin
select employee_id_sequence.nextval into :new.id from dual;
end;
``
不用序列、触发器插入数据:
insert all
into Employee(id,salary) values(2,400)
into Employee(id,salary) values(3,200)
into Employee(id,salary) values(4,300)
select * from dual;
应用触发器后插入数据
insert into Employee(salary) values(500);
不应用触发器直接应用序列插入数据
insert into Employee(id,salary) values(employee_id_sequence.NEXTVAL,1100);