gpt4 book ai didi

Mysql Prevent insert with insert trigger condition 不满足

转载 作者:太空宇宙 更新时间:2023-11-03 11:04:55 27 4
gpt4 key购买 nike

我正在尝试设置触发器,以便在不满足条件时不会发生插入。

我认为下面是这样做的方法,但我不确定

我遇到了一个错误/* SQL 错误 (1407): 错误的 SQLSTATE: '45000 ' */

任何人都可以让我知道为什么我会收到此错误以及如果在 mysql 中不满足条件时阻止插入的最佳方法。

DELIMITER $$
SHOW WARNINGS$$
USE `warrington_central`$$

CREATE TRIGGER before_insert_image_comment_section_check
BEFORE INSERT ON image_comment FOR EACH ROW
BEGIN

DECLARE error_msg varchar(255);
IF New.section != (SELECT id from section where section = "image")
THEN SET error_msg = "Cannot insert a comment into this section as it is the wrong section type";
SIGNAL SQLSTATE '45000 'SET MESSAGE_TEXT = error_msg;


END IF;

END
$$

SHOW WARNINGS$$

最佳答案

除非之前使用 DECLARE ... CONDITION 声明,否则 SQLSTATE 必须是 5 个字符的字符串;

SIGNAL SQLSTATE '45000 'SET MESSAGE_TEXT = error_msg;

您正在尝试将 SQLSTATE 设置为 6 个字符长的“45000”(注意空格)。修复间距,你应该不会再看到该消息(它也反射(reflect)在你的错误消息中,但空间有点难以看到)

关于Mysql Prevent insert with insert trigger condition 不满足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12555094/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com