gpt4 book ai didi

更新前mysql触发错误

转载 作者:行者123 更新时间:2023-11-30 00:58:12 26 4
gpt4 key购买 nike

我遇到无法解决的触发器问题。当我在 Navicat 中创建触发器时没有错误,但是当我更新另一个数据库时出现错误。触发器是:

CREATE TRIGGER `status` BEFORE UPDATE ON `db_termine` FOR EACH ROW 
IF ( (NEW.tgebucht >= OLD.tteilnmax)
AND (NEW.tgebucht!=0)
AND (OLD.tstatus=0) ) THEN

SET NEW.tstatus = 1;

ELSEIF ( (NEW.tgebucht < OLD.tteilnmax)
AND (OLD.tstatus=1) ) THEN

SET NEW.tstatus =0;

END IF;

错误是:

架构创建失败:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 2 行 '' 附近使用的正确语法:

这是第一条 SET 行。任何帮助将不胜感激,因为我现在在尝试解决这个问题时失去了理智。

最佳答案

这很可能是因为您没有设置与 ; 不同的分隔符,从而使查询在它看到的第一个 ; 之后结束。

试试这个:

DELIMITER //
CREATE TRIGGER `status` BEFORE UPDATE ON `db_termine` FOR EACH ROW
IF ((NEW.tgebucht >= OLD.tteilnmax) AND (NEW.tgebucht!=0) AND (OLD.tstatus=0)) THEN
SET NEW.tstatus = 1;
ELSEIF ((NEW.tgebucht < OLD.tteilnmax) AND (OLD.tstatus=1)) THEN
SET NEW.tstatus =0;
END IF;
//
DELIMITER ;

sqlfiddle demo

关于更新前mysql触发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20380844/

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