[mysql触发更新:如何检测NULL值?

问题描述 投票:0回答:1

当用户更新个人资料时,我尝试更新porcentageComplete配置文件:

状态字段:

`statut` enum('Marié','En couple','Divorcé') DEFAULT NULL,

触发器为:

DROP TRIGGER IF EXISTS update_user;
DELIMITER $$

CREATE TRIGGER update_user
    BEFORE UPDATE
    ON users FOR EACH ROW
BEGIN
    DECLARE porcentage int default 0;
    IF NEW.statut!=NULL OR OLD.statut!=NULL THEN 
        set porcentage = porcentage + 1;
    END IF;
    SET NEW.porcentageCompleted = porcentage;

END$$ 

这无法正确更新porcentageCompleted:看起来NULL比较无法正常工作

mysql mariadb database-trigger
1个回答
0
投票

=<>(或!=)与NULL值的比较本身会产生NULL,因此不正确,即错误。使用IS NULLIS NOT NULL检查NULL

© www.soinside.com 2019 - 2024. All rights reserved.