我正在尝试创建(我认为)应该是一个基本的触发器。
基本上如果有人试图为超出触发范围的记录设置值,那么它将拒绝更新。
表名为:人
有关领域是:年龄
CREATE TRIGGER max_age_trigger
BEFORE UPDATE
ON People
FOR EACH ROW
BEGIN
IF People.age <0 OR People.age>150 THEN
CALL 'Error: The age is out of range (0 > 150)';
END IF;
END
MySQL在第7行抛出错误。但是我不知道我哪里出错了。我是触手可及者的新手,我仍然不知所措。
如果您可以帮助/协助我使用我的代码,那将会有很大的帮助:)
答案 0 :(得分:0)
如果您想抛出错误并停止处理,请使用SIGNAL
:
CREATE TRIGGER max_age_trigger BEFORE UPDATE
ON People
FOR EACH ROW
BEGIN
IF People.age <0 OR People.age>150 THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'Error: The age is out of range (0 > 150)';
END IF;
END