首页 > 解决方案 > 如果字段值为空,则插入前 Mariadb 数据库触发器失败

问题描述

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

如果数据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);

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

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

标签: triggersmariadb

解决方案


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


推荐阅读