2017-06-14 63 views
0

我想写一个触发器,如果​​传入值为空(换句话说就是''),则在表中插入NULL。我有:触发器将空值更改为NULL

DELIMITER // 
CREATE TRIGGER avoid_empty 
BEFORE INSERT ON EVALUATION 
FOR EACH ROW 
BEGIN 
    IF mark = '' THEN SET NEW.mark = NULL; 
    END IF; 
END; 
// 
DELIMITER ; 

它执行没有错误,但它没有做我所需要的。

回答

1

尝试:

DELIMITER // 

CREATE TRIGGER `avoid_empty` BEFORE INSERT ON `EVALUATION` 
FOR EACH ROW 
BEGIN 
    IF NEW.`mark` = '' THEN 
     SET NEW.`mark` := NULL; 
    END IF; 
END// 

DELIMITER ; 

db-fiddle

+0

我已经通过编写一个特殊的SQL查询解决了这个问题。无论如何,我会标记你的答案 – Rockasaurus