我有兩個表員工和employees_audit,我創建插入後觸發器在那裏將插入數據employees_audit,然後刪除表中的員工數據INSERT觸發器後做插入表a_temp,並從表中刪除a_temp
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.
如何創建觸發器insert事件上具有觸發器表刪除數據?
您想在插入審計表後刪除employees表,那麼爲什麼您需要僱員表,直接插入審計?無需觸發。 – Anil
我被要求做類似那樣的東西 – Calvin
請誰倒下了這個問題給出一個理由,所以我知道我的錯誤Thx! – Calvin