我创建了一个触发器,可以在创建Employees条目后将值插入Payroll。但是当我向Employees中插入值时,没有值从触发器输入到Payroll中。当我向Employees插入值时,工资单保持为空。有什么想法吗?
CREATE TABLE Employees(
empid FLOAT,
dept FLOAT,
empname varchar2(25),
salary FLOAT
);
CREATE TABLE Payroll(
empid FLOAT,
salary FLOAT
);
CREATE OR REPLACE TRIGGER NewEmployee
AFTER INSERT
ON Employees
FOR EACH ROW
BEGIN
INSERT INTO Payroll
VALUES(:Old.empid,:Old.salary);
END;
/
INSERT INTO Employees values (1,1,‘supply’,50000);
INSERT INTO Employees values (2,2,‘hard’,80000);
Select * from Employees;
Select * from payroll;
答案 0 :(得分:1)
您的:Old.empid
和:Old.salary
应为:new.empid
和:new.salary
。
此外,it is slightly more efficient to use a BEFORE INSERT
trigger,如果可以的话。