无法在mysql/amazon rds中添加触发器

nkcskrwz  于 2021-06-18  发布在  Mysql
关注(0)|答案(0)|浏览(233)

我正在创建一个表(使用mysql 8.0),希望在其中的两列(比如column1和column2)上添加check约束。由于check约束在mysql中不可用,我创建了before-insert触发器。下面是添加触发器的mysql查询。

DELIMITER $$
USE `database_name`$$
CREATE DEFINER = CURRENT_USER TRIGGER `database_name`.`table_name_BEFORE_INSERT` 
BEFORE INSERT ON `table_name` 
FOR EACH ROW
BEGIN
    IF (NEW.column1 = NULL AND NEW.column2 = NULL)
    THEN
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'column1 and column2 both cannot be null';
    ELSEIF (NEW.column1 IS NOT NULL AND NEW.column2 IS NOT NULL)
    THEN 
        SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'column1 and column2 both cannot have a value';
    END IF;
END$$
DELIMITER ;

在运行这个脚本时,我得到了错误代码:1419。您没有超级权限,二进制日志记录已启用(您可能希望使用不太安全的log\u bin\u trust\u function\u creators变量)。我正在使用的用户具有触发器权限。在此方面的任何帮助都将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题