2016-04-12 12 views
1

私のトリガで条件付きで値を変更しようとしていますが、エラーが発生しました。 MySQLトリガー、条件付きで更新前の値を変更する

CREATE TRIGGER `defineBase` BEFORE INSERT ON `perguntas` 
FOR EACH ROW 
BEGIN 
    IF NEW.per_base = 0 THEN 
     SET NEW.per_base = (SELECT per_id FROM perguntas ORDER BY per_id DESC LIMIT 1) + 1; 
    END IF; 
END; 

が、動作しません:

私のトリガーがあります。

答えて

0

区切り記号を;以外に変更する必要があります。それ以外の場合、トリガー定義は最初に停止します;

delimiter | 
CREATE TRIGGER `defineBase` BEFORE INSERT ON `perguntas` 
FOR EACH ROW 
BEGIN 
    IF NEW.per_base = 0 THEN 
     SET NEW.per_base = (SELECT per_id FROM perguntas ORDER BY per_id DESC LIMIT 1) + 1; 
    END IF; 
END 
| 
delimiter ; 
関連する問題