我试图使用数据库触发器捕获(审核)在表上执行插入时的情况。当其中一个字段为空时,不会处理插入。我已经通过从插入中删除空列(向我自己)证明了这一点。
如果
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);
为什么它不起作用?我该怎么做才能克服这个问题?
我知道完成此任务的其他方法,但这是我们需要使用的解决方案 - 数据库触发/捕获插入。
我找到了一个解决方法 --- 我可以通过将 IFNULL 添加到所有列 -> IFNULL(NEW.col2,'NULL') 来使其工作。在我看来这是额外的工作,但它现在正在发挥作用。
这是一个已知的 MariaDB 错误,可在 https://jira.mariadb.org/browse/MDEV-19761
进行跟踪