2015-02-24 65 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