当性别为“m”、“l”或“t”时,我必须在insert操作后将employee表的性别改为“w”。
分隔符为$$
CREATE TRIGGER after_employee_insert
AFTER INSERT ON employee
FOR EACH ROW
BEGIN
UPDATE employee SET gender='W' where gender in('M', 'L', 'T');
END$$
insert into employee values(111, 'zzz', 200000, 's')$$
o/p公司
错误1442(hy000):无法更新存储函数/触发器中的表“employee”,因为它已被调用此存储函数/触发器的语句使用。
即使我不接受海运提单,它也不允许更新
我应该在插入前使用吗?试过了,也试过了
where new.gender in('M', 'L', 'T');
o/p公司
错误1054(42s22):“new”中的未知列“gender”
提前谢谢
1条答案
按热度按时间u4dcyp6a1#
您可以更改插入引用的当前行的值
NEW
```CREATE TRIGGER after_employee_insert
BEFORE INSERT ON employee
FOR EACH ROW
BEGIN
IF gender in('M', 'L', 'T') THEN
SET NEW.gender = 'W';
END IF;
END$$