当用户更新个人资料时,我尝试更新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比较无法正常工作
答案 0 :(得分:2)
与=
或<>
(或!=
)与NULL
值的比较本身产生NULL
,因此不是true,即false。使用IS NULL
和IS NOT NULL
检查NULL
。
...
IF NEW.statut IS NOT NULL
OR OLD.statut IS NOT NULL THEN
...