gpt4 book ai didi

mysql触发器-在另一个表中每次插入某项时,表的字段增加1

转载 作者:行者123 更新时间:2023-11-29 00:02:41 24 4
gpt4 key购买 nike

我有一张员工表和一个部门表。

DEPT(DEPTNO INT(2),DNAME VARCHAR(45),NO_EMP INT(5),PRIMARY KEY(DEPTNO));

EMP(EMPNO INT(3),EMPNAME VARCHAR(45),DEPTNO INT(2),PRIMARY KEY(EMPNO),
FOREIGN KEY(DEPTNO) REFERENCES DEPT (DEPTNO));

我希望 DEPT 的字段 NO_EMP 包含在该部门工作的员 worker 数。

CREATE TRIGGER EMPL
BEFORE INSERT ON EMP
FOR EACH ROW
UPDATE DEPT SET NO_EMP=1+IFNULL(0,NO_EMP) WHERE DEPT.DEPTNO=NEW.DEPTNO;

上面的触发器只将 DEPT.NO_EMP 增加了一次。它没有超过'1'。我做错了什么?

最佳答案

你的 ifnull()争论是倒退的。它是 IFNULL(value_to_test, value_to_use_if_null)。您正在测试 0 是否为 null,而事实并非如此,因此您正在有效地做

... SET NO_EMP = 1 + 0

你想要

... SET NO_EMP = IFNULL(NO_EMP, 0) + 1

相反,.

关于mysql触发器-在另一个表中每次插入某项时,表的字段增加1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29015132/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com