mysql - 如何检查插入触发器中的字段是否为空?
问题描述
如何在触发器中验证在向表和字段中插入数据之前是否没有插入任何内容,即它是否为空。如何检查触发器中它是否为空?
我试图以这种方式验证它,但是当字段为空时它没有输入条件。
DELIMITER //
CREATE TRIGGER tr_i_correo BEFORE INSERT ON examen_final
FOR EACH ROW
BEGIN
IF correo IS NULL THEN
SET new.correo = 'jatuesta@mail.com');
END IF;
END //
解决方案
New.crreo 也应该针对空字符串进行测试
CREATE TABLE examen_final (correo varchar(199), nome varchar(100))
CREATE TRIGGER tr_i_correo BEFORE INSERT ON examen_final FOR EACH ROW BEGIN IF NEW.correo IS NULL OR NEW.correo = '' THEN SET new.correo = 'jatuesta@mail.com'; END IF; END
INSERT INTO examen_final VALUEs (NULL, 'test1'), ('', 'test2')
SELECT * FROM examen_final
科雷奥 | 名称 :---------------- | :---- jatuesta@mail.com | 测试1 jatuesta@mail.com | 测试2
db<>在这里摆弄
推荐阅读
- three.js - 在three.js中绘制矩形的最佳方法
- android - Android DarkMode:价值之夜不起作用
- android - 使用深色主题时如何使 Android CardView 可见
- javascript - 仅更新对象数组中的一个属性会做出反应
- ssis - 如何使用“关键字'FROM'附近的语法不正确”异常调试复合实体?
- javascript - 在数组映射中反应访问 setState
- sql-server - 使用存储过程将数据类型 varchar 转换为 int 时出错
- javascript - 处理 3 个微服务的竞争条件的正确方法。(Promise.all ?)
- shell - 回显输出未分配给 shell 脚本中的变量
- mysql - 将单个 MariaDB 转换为 Galera 集群