【发布时间】:2014-07-07 21:36:30
【问题描述】:
我有一个名为 daire 的表,它有名为 Kiraci、D_ID、Sahip 的列。 D_ID 是 PK 列。我想要的是当我更改 Kiraci 值时,我想触发删除一行或将新行插入另一个表。我试图创建一个像书面底部一样的触发器:
CREATE TRIGGER daireBosalt AFTER UPDATE ON daire
FOR EACH ROW
BEGIN
IF NEW.Kiraci IS NULL THEN
DELETE FROM kontrat WHERE kontrat.D_ID = NEW.D_id;
ELSEIF NEW.Kiraci IS NOT NULL THEN
INSERT INTO kontrat (D_ID, BAy, BGun, BYil, Tutar, Sahip, Sure, Depo, Komisyon) VALUES (NEW.D_id, '01', '01','2014','100', NEW.Sahip,'1','100','100')
END IF;
END;
当我尝试创建这个脚本时,它总是给我语法错误。
【问题讨论】:
-
您是否更改了分隔符? IE。
DELIMITER \` before the statement, end the create with\` 并使用DELIMITER ;重置分隔符 -
您在 INSERT 后缺少分号。
-
天哪,是的,对 thnx :)
-
从逻辑上讲 - 为什么您觉得需要使用
ELSEIF而不是仅使用ELSE执行第二次测试?您是否正在使用NEW.Kiraci IS NULL可能为假而New.Kiraci IS NOT NULL不会为真的量子计算机?
标签: mysql sql sql-update triggers