这是我用的
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 我的目的是让两个表中的两个字段同步。高人给写一条,我的那个无论我怎么改还是有问题
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 我的目的是让两个表中的两个字段同步。高人给写一条,我的那个无论我怎么改还是有问题
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 ;
Undeclared variable: f_credits
管理工具是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 ; 高人解