triggers - 如果字段值为空,则插入前 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);
为什么它不起作用,我该怎么做才能克服这个问题?
我知道完成此任务的其他方法,但这是我们需要使用的解决方案 - 数据库触发器/捕获插入。
解决方案
我找到了一个解决方法---我可以通过将 IFNULL 添加到所有列来实现它 -> IFNULL(NEW.col2,'NULL')。在我看来,这是额外的工作,但它现在正在工作。
推荐阅读
- bash - 将文件拆分为 n 个文件的 Bash 脚本,每个文件包含 x 条记录
- swift - 所以我想找到刚刚编辑过的单元格的 indexPath.row,也就是在 func textViewDidEndEditing 内部
- python - 将多个 PIL 图像合并到一个图中
- typescript - 打字稿错误创建字段'('预期.ts(1005)
- javascript - How to send submitted form data to a local server
- android - XML中的片段/活动外的Android浮动配置文件图像
- php - 使用 JOB 和 Supervisor 时生成的附加到电子邮件的 PDF 失败。
- android - RecyclerView.onBindViewHolder 未填充所有项目
- functional-programming - 如何在不创建闭包的情况下调用多参数函数?
- javascript - 单击按钮时的进度条