首页 > 解决方案 > 适用于 Oracle 的触发器,我正在尝试生成 MySQL 等价物

问题描述

我有一个非常简单的 MySQL 触发器,我无法开始工作

delimiter //
CREATE TRIGGER RECORD_TRIGGER
BEFORE  INSERT 
ON RECORD
FOR EACH ROW
BEGIN
    IF NEW.MARK < 0 THEN
        SIGNAL SQLSTATE '45000' 
        SET MESSAGE_TEXT = ‘The mark cannot be negative';
    END IF;

END;
//
delimiter ;

欢迎任何想法。

标签: mysqloracle

解决方案


一个错字(错误的引号字符)。

CREATE TRIGGER RECORD_TRIGGER
BEFORE  INSERT 
ON RECORD
FOR EACH ROW
BEGIN
    IF NEW.MARK < 0 THEN
        SIGNAL SQLSTATE '45000' 
        SET MESSAGE_TEXT = 'The mark cannot be negative';
    END IF;
    IF NEW.MARK > 100 THEN
        SIGNAL SQLSTATE '45000' 
        SET MESSAGE_TEXT= 'The mark cannot exceed 100.'; 
    END IF;
END

小提琴


推荐阅读