我有两个表员工和 employees_audit ,我在插入后创建了一个触发器,它将将数据插入employees_audit ,然后从表员工中删除数据
CREATE TABLE employees (
employeeNumber INT NOT NULL,
lastname VARCHAR(50) NOT NULL
);
CREATE TABLE employees_audit (
id INT AUTO_INCREMENT PRIMARY KEY,
employeeNumber INT NOT NULL,
lastname VARCHAR(50) NOT NULL,
changedat DATETIME DEFAULT NULL,
action VARCHAR(50) DEFAULT NULL
);
这是触发器
CREATE DEFINER=`root`@`localhost` TRIGGER `test`
AFTER INSERT ON `employee`
FOR EACH ROW
BEGIN
insert into employees_audit(employeeNumber,lastname,changedat,action) values(NEW.employeeNumber,NEW.lastname,CURDATE(),'wew'); delete from employee;
END
但是当我在表员工上插入数据时,我收到了这个错误
#1442 - Can't update table 'employee' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
如何创建一个触发器插入事件,删除具有触发器的表上的数据?
答案 0 :(得分:0)
你不能这样做。如果要删除employee表中的所有数据,为什么还需要该表。直接插入employees_audit。