如何检查插入触发器中的字段是否为空?
How to check a field is null in an insert trigger?
如何在触发器中验证在 table 中插入数据之前是否在字段中未插入任何内容,即它为空。如何检查它在触发器中是否为空?
我试过这样验证过,但是没有进入字段为null的条件
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
correo | nome
:---------------- | :----
jatuesta@mail.com | test1
jatuesta@mail.com | test2
db<>fiddle here
如何在触发器中验证在 table 中插入数据之前是否在字段中未插入任何内容,即它为空。如何检查它在触发器中是否为空?
我试过这样验证过,但是没有进入字段为null的条件
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
correo | nome :---------------- | :---- jatuesta@mail.com | test1 jatuesta@mail.com | test2
db<>fiddle here