2017-02-25 23 views
0

无法运行此声明两个处理程序的SQLSTATE

DELIMITER $$ 
CREATE TRIGGER tr_test BEFORE UPDATE ON test 
    FOR EACH ROW 
     BEGIN 
     DECLARE EXIT HANDLER FOR SQLSTATE '45000'; 
     DECLARE EXIT HANDLER FOR SQLSTATE '23000'; 
     IF(older_record(NEW.last_action_timestamp, OLD.last_action_timestamp)) THEN 
      SET @rowhash = (SELECT MD5(NEW)); 
      INSERT INTO test_db.test_table SELECT NEW.*, @rowhash; 
      SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'old record'; 
     END IF 
     END 
     $$ 
DELIMITER ; 

我得到以下错误信息:

您的SQL语法错误;检查与您的> MariaDB服务器版本相对应的手册,以获取在''附近使用的正确语法'; DECLARE EXIT HANDLER FOR SQLSTATE'23000'; IF(older_record(NEW.l” 4行

回答