我在 MySQL 中有这个触发器
DROP TRIGGER IF EXISTS BeforeGivingRight;
DELIMITER $$
CREATE TRIGGER BeforeGivingRight
BEFORE INSERT ON right_code
FOR EACH ROW
BEGIN
DECLARE num_rows INT NULL;
SELECT count(right_code) FROM valid_rights WHERE right_code =
new.user_right.right INTO num_rows;
IF num_rows = 0
THEN
set msg = concat('Error: That right is not allowed!',
cast(new.user_right.right as char));
signal sqlstate '45000' set message_text = msg;
END IF;
END $$
DELIMITER ;
它给了我这个错误
#1064 - You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near 'NULL; SELECT
count(right_code) FROM valid_rights WHERE right_code = new.user_' at line 5
这里出了什么问题?我想做的是,在插入某些权限(例如 201)之前,使用触发器检查 valid_rights
是否存在。
最佳答案
您错过了关键字DEFAULT
。使用 0
而不是 NULL
。
DECLARE total_sale INT DEFAULT 0;
关于mysql - 简单的触发抛出错误并停止执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12723225/