You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在INSERT触发器中正确判断插入的字段值是否为NULL?

问题原因分析
  • 触发器中访问待插入行的字段必须加NEW前缀,原代码中直接写correo IS NULL,MySQL无法识别该字段归属,判断条件永远不会触发。
  • 原SET语句末尾多了一个多余的右括号,会直接导致语法报错。
修正后的完整代码
DELIMITER //
CREATE TRIGGER tr_i_correo BEFORE INSERT ON examen_final
FOR EACH ROW
BEGIN
    -- 校验新插入行的correo字段是否为NULL
    IF NEW.correo IS NULL THEN
        SET NEW.correo = 'jatuesta@mail.com';
    END IF; 
END //
DELIMITER ;
扩展说明

如果需要同时覆盖字段被赋值为空字符串的场景,可以修改判断条件为:

IF NEW.correo IS NULL OR TRIM(NEW.correo) = '' THEN

内容的提问来源于stack exchange,提问作者Jhonathan David Atuesta M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 05:57:03