[英]What's wrong with the syntax of this simple MySQL trigger?
DELIMITER $$
CREATE TRIGGER ad_user AFTER DELETE
ON `user`
FOR EACH ROW BEGIN
DECLARE max_id INT;
DECLARE new_id INT;
SELECT MAX(`id`) INTO max_id FROM `user`;
IF max_id = NULL THEN
SET max_id = 0;
END IF
SELECT `new_id` INTO new_id FROM `conf` WHERE `table` = 'user';
IF max_id < new_id THEN
UPDATE `conf` SET `new_id` = max_id WHERE `table` = 'user';
END IF
END$$
创建此触发器时,出现以下错误提示:
错误代码:1064您的SQL语法错误; 检查与您的MySQL服务器版本相对应的手册,以在'SELECT new_id INTO new_id FROM conf WHERE table ='fact'附近使用正确的语法; 如果在第12行的max_id <new_id THEN'
有人可以帮助我吗? 提前致谢!
尝试像这样编写查询:
DELIMITER $$
CREATE TRIGGER ad_user AFTER DELETE
ON `user`
FOR EACH ROW BEGIN
DECLARE v_max_id INT;
DECLARE v_new_id INT;
SELECT MAX(`id`) INTO v_max_id FROM `user`;
IF v_max_id IS NULL THEN
SET v_max_id = 0;
END IF;
SELECT `new_id` INTO v_new_id FROM `conf` WHERE `table` = 'user';
IF v_max_id < v_new_id THEN
UPDATE conf c
SET c.new_id = v_max_id
WHERE c.`table` = 'user';
END IF;
END$$
这主要是添加分号并修复= NULL
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.