如果字段值为空,插入前 Mariadb 数据库触发器将失败

问题描述 投票:0回答:2

我试图使用数据库触发器捕获(审核)在表上执行插入时的情况。当其中一个字段为空时,不会处理插入。我已经通过从插入中删除空列(向我自己)证明了这一点。

如果

NEW.col2
中的数据为 NULL,则示例 1 中的插入不会执行,当我从插入中删除
col2
(如示例 2 所示)时,它会起作用。

示例 1 -

insert into table_a (col1,col2,col3) values (NEW.col1,NEW.col2,NEW.col3);

示例 2 -

insert into table_a (col1,col3) values (NEW.col1,NEW.col3);

为什么它不起作用?我该怎么做才能克服这个问题?

我知道完成此任务的其他方法,但这是我们需要使用的解决方案 - 数据库触发/捕获插入。

triggers mariadb
2个回答
0
投票

我找到了一个解决方法 --- 我可以通过将 IFNULL 添加到所有列 -> IFNULL(NEW.col2,'NULL') 来使其工作。在我看来这是额外的工作,但它现在正在发挥作用。


0
投票

这是一个已知的 MariaDB 错误,可在 https://jira.mariadb.org/browse/MDEV-19761

进行跟踪
© www.soinside.com 2019 - 2024. All rights reserved.