Mysql 触发器创建语法错误

Mysql trigger creation bad syntax

我正在尝试创建一个 SQL 触发器,但我总是收到一条错误消息,我想检查 updateinsert 如果调用的值 status 不高于 1 且不低于 0,则操作。

CREATE TRIGGER tr_ins_cert_login 
BEFORE UPDATE ON cert_login 
FOR EACH ROW
BEGIN
    DECLARE errorMessage VARCHAR(255);
    SET errorMessage('Invalid Status Value.');
    
    IF new.status <> 0 AND new.status <> 1 THEN
        SET MESSAGE_TEXT = errorMessage;
    END IF;
END   

当我尝试 运行 命令时 returns 出错。 我正在使用 MySql.

错误: #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 '' at line 5

有什么提示吗?

Message_text 应该是信号 sqlstate 的一部分,遵循我盒子上的语法

drop trigger if exists t;
delimiter $$

CREATE TRIGGER t 
BEFORE UPDATE ON cert_login 
FOR EACH ROW
BEGIN
    DECLARE errorMessage VARCHAR(255);
    SET errorMessage = ('Invalid Status Value.');
    
    IF new.status <> 0 AND new.status <> 1 THEN
       SIGNAL SQLSTATE '01000'
        SET MESSAGE_TEXT = errorMessage;
    END IF;
END   $$

delimiter ;

https://www.db-fiddle.com/f/913nweKrHqXL5SViuuqAZE/0

ps 您的第一个 set 语句无效您错过了 =