mysql - 适用于 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 ;
欢迎任何想法。
解决方案
一个错字(错误的引号字符)。
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
推荐阅读
- c# - 通过 Linq2SQL 调用 SQL Server 存储过程中的事务
- angular - 订阅中的角度订阅循环
- c++ - 如何在 QGraphicsSimpleTextItem 中居中文本?
- javascript - 处理多个具有相同名称的扩展匹配器
- keycloak - 如何在 Keycloak 中将 WantAuthnRequestsSigned 设置为 false
- elasticsearch - 超集到 Elasticsearch 连接错误
- flutter - 颤振可以扩展颜色吗?
- wordpress - 将 WordPress 子域重定向到 Laravel 主站点
- python - 使用 Tkinter Entry 填写 glob 路径名
- android - 拒绝对先前失败的类 java.lang.Class 重新初始化