createorreplacetrigger触发器名称 insteadofinsertorupdateordeleteon视图名称foreachrowbegin--处理语句end; 示例 --创建表createtablestu_info(id number,name varchar2(30));createtablestu_sex(id number,sex varchar2(2));--插入示例数据insertintostu_info(id,name)values(1,'青青');insertintostu_info(id...
代替触发器(INSTEAD OF 触发器) 代替触发器定义于视图 CREATEORREPLACEtrigger_name INSTEADOFDELETEONtable_nameBEGINxxxx;END; 假如在一个视图上进行删除操作,但是有完整性约束,可以通过INSTEAD OF 触发器删除约束表的数据。
INSTEAD OF触发器的语法 sql CREATE [OR REPLACE] TRIGGER trigger_name INSTEAD OF {INSERT | DELETE | UPDATE} ON [schema.] view_name [FOR EACH ROW] BEGIN -- PL/SQL代码 END; trigger_name:触发器的名称。 view_name:触发器关联的视图名称。 FOR EACH ROW:指定触发器为行级触发器,对视图中的每...
create [or replace] trigger 触发器名 触发时间 {before | after} -- view 中是 instead of 触发事件 { insert | update | delete} -- dml、ddl、database on 触发对象 -- table、view、schema、database 触发频率 { for each row} -- 行级触发器。默认:语句级触发器 [follows 其它触发器名] -- ...
trigger_name:触发器的名称。 BEFORE | AFTER | INSTEAD OF:触发器的执行时机。BEFORE表示在操作之前触发,AFTER表示在操作之后触发,INSTEAD OF表示代替操作触发。 INSERT | UPDATE | DELETE:触发器所关联的操作类型。 ON table_name:触发器所关联的表名。 REFERENCING OLD AS old NEW AS new:在触发器代码中使用...
触发器(trigger) 是数据库常用对象之一。简单的说,在某个条件成立的时候,触发器内所定义的语句就会被自动的执行。 Trigger 触发器的本质是在事件发生时隐式的自动运行的PL/SQL程序块。触发器不能接收参数,也不能被调用。 触发器按照触发事件类型和对象不同,可...
[trigger_body] 其中,trigger_name是触发器的名称,table_name是触发器所属的表名,BEFORE/AFTER/INSTEAD OF关键字指定触发器的类型,INSERT/UPDATE/DELETE关键字指定触发器触发的事件,REFERENCING子句用于指定触发器中的OLD和NEW引用,FOR EACH ROW指示触发器为每一行数据都触发执行,WHEN子句用于指定触发器的执行条件,ENABL...
CREATE OR REPLACE TRIGGER insteadof_trigger INSTEAD OF INSERT ON emp_dept FOR EACH ROW DECLARE v_temp INT; BEGIN SELECT COUNT(*) INTO v_temp FROM dept_new WHERE deptno=:new.deptno; IF v_temp=0 THEN INSERT INTO dept_new(deptno,dname) VALUES(:new.deptno,:new.dname); END IF; SELECT ...
触发器的意思就是当我们对数据库对象(一般是表或视图)进行insert、update、delete操作的时候,这些操作会相应的触发一些事件的执行,通常要执行的事件被写成PL/SQL程序,那么这些数据库对象上的事件相关的程序就是触发器(trigger)。Oracle数据库中,触发器分为before、after、instead of三种,其中before、after主要对于表操作...
CREATE OR REPLACE TRIGGER TRI_V_AB INSTEAD OF INSERT ON VW_AB FOR EACH ROW BEGIN INSERT INTO TB_A VALUES (:NEW.ID, :NEW.COLA); INSERT INTO TB_B VALUES (:NEW.ID, :NEW.COLB); END; 1. 2. 3. 4. 5. 6. 7. 然后就可以INSERT数据到视图了: ...