本帖最后由 lightlr 于 2012-03-16 14:51:58 编辑

解决方案 »

  1.   

    DELIMITER $$
    DROP PROCEDURE IF EXISTS CJ_Data$$
    CREATE PROCEDURE CJ_Data(in_xh CHAR(6),in_kch CHAR(3),in_cj INT(4))
    BEGIN
         DECLARE in_count INT(4);
         DECLARE in_xf    TINYINT(1);
         DECLARE in_cjb_cj INT(4);
         SELECT XF INTO in_xf FROM KCB WHERE KCH=in_kch;
         SELECT COUNT(*) INTO in_count FROM CJB WHERE XH=in_xh AND KCH=in_kch;
         SELECT CJ INTO in_cjb_cj FROM CJB WHERE XH=in_xh AND KCH=in_kch;
         IF in_count>0 THEN
         BEGIN
             DELETE FROM CJB WHERE XH=in_xh AND KCH=in_kch;
             IF in_cjb_cj>60 THEN
                   UPDATE XSB SET ZXF=ZXF-in_xf WHERE XH=in_xh;
             END IF;
         END;
         END IF;
         IF in_cj!=-1 THEN
         BEGIN
             INSERT INTO CJB VALUES(in_xh,in_kch,in_cj);
             IF in_cj>60 THEN
                   UPDATE XSB SET ZXF=ZXF+in_xf WHERE XH=in_xh;
             END IF;
         END;
         END IF;
    END$$
    DELIMITER ;USE Sams2;
    DELIMITER $$
    CREATE TRIGGER Check_XSB_CJB AFTER DELETE
        ON XSB FOR EACH ROW
    BEGIN
        DELETE FROM CJB WHERE XH=OLD.XH;
    END$$
    DELIMITER ;
      

  2.   

    注意 空格
    DELIMITER ;
      

  3.   

    第一个解决了..触发器还有错误.说#1235 - This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' 
      

  4.   

    没看见有,存储过程也没看见,不过确实是执行成功..
    可以告诉我删除TRIGGER的代码吗?
      

  5.   

    SHOW TRIGGERS ;
    drop TRIGGER TRIGGERname
      

  6.   

    您的 SQL 语句已成功运行 ( 查询花费 0.0038 秒 )
    SHOW TRIGGERS输入你那个就这样而已,也没看见什么TRIGGERS的名字
      

  7.   

    USE Sams2;
    SHOW TRIGGERS ;
    贴结果