0

我在创建触发器时遇到问题,我不确定为什么会出错。请您帮帮我。

我写了一个下面提到的触发器,它在尝试执行触发器时给了我这个错误......

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在 'DECLARE store_itemid INTEGER; 附近使用的正确语法;store_hostid 整数;store_desc VARCHAR(255);' 在第 4 行

代码:

mysql> delimiter //
   CREATE TRIGGER init_trigger 
   AFTER INSERT ON test_trigger
   FOR EACH ROW
   DECLARE 
     store_itemid INT;
     store_hostid INT;
     store_desc VARCHAR(255);
     store_key VARCHAR(255);
     store_lastvalue VARCHAR(255);
     store_lastclock VARCHAR(255);
     store_preval INT;
     store_status INT;
   BEGIN

     SELECT itemid into store_itemid,
            hostid into store_hostid,
            description into store_desc,
            key_ into store_key,
            lastvalue into store_lastvalue,
            lastclock into store_lastclock,
            prevvalue into store_preval,
            status into store_status 
       FROM test_triggers 
      WHERE lastvalue > 80;

     IF store_lastvalue > 80 THEN
        INSERT INTO test_triggers1 
          (itemid,hostid,description,key,lastvalue,lastclock,prevvalue,status) 
        VALUES
          (store_itemid,store_hostid,store_desc,store_key,store_lastvalue,store_lastclock,store_preval,store_status);

     END IF;
   END;
   // 
4

1 回答 1

0

你必须在“ROW”之后添加“BEGIN”

于 2010-05-27T13:38:00.683 回答