触发器问题 - Oracle SQL plus

时间:2012-12-07 01:45:32

标签: sql oracle-sqldeveloper

我创建了一个触发器,可以在创建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;

1 个答案:

答案 0 :(得分:1)

您的:Old.empid:Old.salary应为:new.empid:new.salary

此外,it is slightly more efficient to use a BEFORE INSERT trigger,如果可以的话。