CREATE trigger tri_updateThreads AFTER UPDATE ON cdb_threads 
FOR each ROW 
BEGIN 
if new.subject = old.subject THEN 
UPDATE cdb_check SET isCheck =0 WHERE id = new.tid AND category =1; 
END;  

解决方案 »

  1.   

    CREATE trigger tri_updateThreads AFTER UPDATE ON cdb_threads 
    FOR each ROW 
    BEGIN 
    if new.subject = old.subject THEN 
    UPDATE cdb_check SET isCheck =0 WHERE id = new.tid AND category =1; 
    end if; -- 少了个 END IF   // ACMAIN
    END;  
    MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  2.   

    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
      

  3.   

    mysql> create table cdb_threads(tid int,subject int);
    Query OK, 0 rows affected (0.11 sec)mysql> delimiter //
    mysql> CREATE trigger tri_updateThreads AFTER UPDATE ON cdb_threads
        -> FOR each ROW
        -> BEGIN
        -> if new.subject = old.subject THEN
        -> UPDATE cdb_check SET isCheck =0 WHERE id = new.tid AND category =1;
        -> end if;        -- 少了个 END IF   // ACMAIN
        -> END;
        -> //
    Query OK, 0 rows affected (0.09 sec)mysql> delimiter ;
    mysql>测试没有任何问题。
      

  4.   

    错误
    SQL 查询: CREATE trigger tri_updateThreads AFTER UPDATE ON cdb_threads FOR each ROW BEGIN IF new.subject = old.subject THEN 
    UPDATE cdb_check SET isCheck =0 WHERE id = new.tid AND category =1;MySQL 返回: #1064 - 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 5 
      

  5.   

    你有用 delimiter 吗?
    看一下5#楼
      

  6.   

    到 phpmyadmin 界上有个设置 delimtier 的地方,仔细看一下。