首页 > 解决方案 > 如何检查插入触发器中的字段是否为空?

问题描述

如何在触发器中验证在向表和字段中插入数据之前是否没有插入任何内容,即它是否为空。如何检查触发器中它是否为空?

我试图以这种方式验证它,但是当字段为空时它没有输入条件。

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 //

标签: mysqltriggers

解决方案


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<>在这里摆弄


推荐阅读