2015-02-24 62 views
0

我试图做一个触发器,如果​​B列没有明确设置插入查询将填充列B与列A的值。 (列B设置为允许NULL并且默认为NULL值)MySQL之前插入触发器填充省略列

DELIMITER $$ 
CREATE TRIGGER trigger_name BEFORE INSERT ON my_table FOR EACH ROW 
BEGIN 
IF (NEW.valueB IS NULL) THEN SET NEW.valueB = NEW.valueA ; 
END 
$$ 

但是我收到了这个错误(不是很有帮助)。

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4 

当我试图找到该问题的空字符串“”使查询等每行一个字,MySQL的标有线“=”成问题的字符。

我重复查询了任何非ascii字符。

我通过命令行(例如不是phpmyadmin)使用mysql版本5.5.37-0ubuntu0.12.10.1

回答

0

你忘了关IF语句。阅读语法here。我认为下面的代码会适合你。

DELIMITER $$ 
CREATE TRIGGER trigger_name BEFORE INSERT ON my_table 
FOR EACH ROW 
BEGIN 
    IF (NEW.valueB IS NULL) THEN 
    SET NEW.valueB = NEW.valueA ; 
    END IF 
END $$ 
DELIMITER