为什么无法保存mySQL触发器?

加斯珀·斯特佩克

我正在尝试创建一个触发器,如果​​已经进行了两个具有相同“ St_Obr”的插入操作,则停止插入操作。它没有显示任何错误,但是当我执行SQL脚本时,触发器没有保存。至少在执行SHOW TRIGGERS时未显示;

码:

DELIMITER //

CREATE TRIGGER ob_limit
BEFORE INSERT ON TUP.Lab FOR EACH ROW
BEGIN
    SELECT @a = COUNT(*)
    FROM TUP.Lab
    WHERE St_Obr = NEW.St_Obr;
    IF (@a > 2) THEN
        SIGNAL SQLSTATE '45000'
        SET MESSAGE_TEXT = 'MAX 2!';
    END IF;
END //
DELIMITER ;
专线小巴

您希望在对代码进行比较计数分配给变量这将需要使用一个声明的变量并选择它。into

但是我发现跳过变量并直接在if语句中运行查询更简单

CREATE TRIGGER ob_limit
BEFORE INSERT ON Lab FOR EACH ROW
BEGIN
    
    IF ((SELECT COUNT(*) FROM Lab WHERE St_Obr = NEW.St_Obr) >= 2) THEN
        SIGNAL SQLSTATE '45000'
        SET MESSAGE_TEXT = 'MAX 2!';
    END IF;

END //

DELIMITER ;

请注意,我将不等式从更改>>=2:前者每行允许三行St_Obr,而后者只允许2(这似乎是您想要的)。

这是关于DB Fiddle演示; 您可以添加注释或取消注释insert以生成错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL触发器将无法保存

来自分类Dev

DocumentDB为什么无法从Azure门户触发触发器?

来自分类Dev

为什么无法在onOpen触发器中调用UrlFetchApp?

来自分类Dev

MySQL触发器不保存

来自分类Dev

为什么在触发了代替触发器后无法插入或更新有效数据?

来自分类Dev

MySQL触发器无法正常工作

来自分类Dev

无法在MySQL上创建触发器

来自分类Dev

MYSQL:为什么以下更新触发器不起作用?

来自分类Dev

为什么此BEFORE INSERT触发器在MySQL中不起作用?

来自分类Dev

APEX触发器无法保存-错误消息

来自分类Dev

为什么要返回触发器(“点击”)?

来自分类Dev

为什么触发器“而不是删除”不是递归的?

来自分类Dev

为什么OneWayToSource绑定会覆盖数据触发器?

来自分类Dev

为什么视图不支持AFTER触发器?

来自分类Dev

为什么变量触发器引发异常?

来自分类Dev

即使在触发器声明中指定了 [AFTER],为什么我的触发器在插入行之前被触发?

来自分类Dev

插入触发器后无法在MySQL中工作

来自分类Dev

MySQL:无法在触发器中使用SIGNAL

来自分类Dev

插入触发器后无法在Mysql中工作

来自分类Dev

MySQL:无法在触发器中使用SIGNAL

来自分类Dev

我无法在mysql上获得运行触发器

来自分类Dev

修改MySQL触发器的正确方法是什么?

来自分类Dev

我的 mysql 触发器有什么可怕的失败?

来自分类Dev

MYSQL GUID触发器

来自分类Dev

MySQL触发器更新

来自分类Dev

MySQL的触发器问题

来自分类Dev

MYSQL多个触发器

来自分类Dev

为什么触发器伪记录是触发器主体中绑定变量的占位符,而不是 WHEN?

来自分类Dev

为什么当鼠标悬停在ScrollViewer上时,为什么我的WPF样式触发器无法仅显示水平滚动条?

Related 相关文章

热门标签

归档