这是我用的 
CREATE TRIGGER cdb_members_update_trigger after update 
ON cdb_members FOR EACH ROW begin 
declare @credits money 
select @credits=credits from inserted 
update coc_members set money = @credits 
where coc_members.username = OLD.username 
end ; 可是一直报错 错误代码: 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 '@credits money 
select @credits=credits from inserted 
update coc_members set mo' at line 7 我的目的是让两个表中的两个字段同步。高人给写一条,我的那个无论我怎么改还是有问题

解决方案 »

  1.   

    Visit here at first
    http://lists.mysql.com/mysql/189592Then the correct trigger's defination is like this.delimiter ||
    CREATE TRIGGER cdb_members_update_trigger after update 
    ON cdb_members FOR EACH ROW 
    begin 
    declare f_credits decimal(10,2);
    select credits from inserted into f_credits; 
    update coc_members set money = @credits where coc_members.username = OLD.username;
    end||
    delimiter ; 
      

  2.   

    错误代码: 1327
    Undeclared variable: f_credits
      

  3.   

    我用的是MySQL client version: 5.0.27
    管理工具是SQLyog
    用SQLyog产生的语句模板是
    DELIMITER $$;DROP TRIGGER `forum`.`coc_update`$$CREATE TRIGGER `forum`.`coc_update` BEFORE/AFTER INSERT/UPDATE/DELETE on `forum`.`coc_member`
    FOR EACH ROW BEGINEND$$DELIMITER ;$$有的兄弟给了我语句可是老是抱错,1064
    CREATE TRIGGER t_name BEFORE UPDATE ON cdb_members   
    FOR EACH ROW   
    BEGIN   
        IF OLD.credits <>  NEW.credits THEN   
           UPDATE dede_members
           SET money = NEW.credits 
           WHERE username = OLD.username ;   
        END IF;   
    END; 
    delimiter ; 高人解