我正在尝试创建一个触发器,该触发器在触发时将数据插入到具有USER和SYSDATE数据的另一个表中。脚本但未从TRIGGER插入任何数据。
我正在运行Oracle Server。
SET SERVEROUTPUT ON;
CREATE TABLE dept1
( DEPTNO NUMBER(3) PRIMARY KEY,
DNAME VARCHAR2(20),
LOC VARCHAR2(20)
);
CREATE TABLE dept1_shadow
( DEPTNO NUMBER(3) PRIMARY KEY,
DNAME VARCHAR2(20),
LOC VARCHAR2(20),
USER_ VARCHAR2(32),
MODTIME CHAR(17)
);
INSERT INTO dept1 VALUES (10, 'ACCOUNTING', 'NEW YORK');
INSERT INTO dept1 VALUES (20, 'RESEARCH', 'DALLAS');
INSERT INTO dept1 VALUES (30, 'SALES', 'CHICAGO');
INSERT INTO dept1 VALUES (40, 'OPERATIONS', 'WASHINGTON (D.C.)');
INSERT INTO dept1 VALUES (50, 'MARKETING', 'BOSTON');
CREATE OR REPLACE TRIGGER row_dept1_trigger
AFTER INSERT ON dept1
FOR EACH ROW
DECLARE
MODTIME CHAR(17);
USER_ VARCHAR2(32);
BEGIN
MODTIME := TO_CHAR(SYSDATE);
USER_ := User;
IF INSERTING THEN
INSERT INTO dept1_shadow (deptno, dname,loc, user_, modtime)
VALUES (:new.deptno, :new.dname,:new.loc,user_, modtime);
END IF;
END;
/
我没有任何错误。
最佳答案
创建触发器后,移动insert语句。
关于sql - 触发编译但不插入行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57531952/