CREATE TRIGGER tradecost
AFTER UPDATE ON fentrust
FOR EACH ROW
BEGIN
DECLARE old_account DECIMAL(16,6)
DECLARE old_fid INT(10)
DECLARE trade_account DECIMAL(16,6)
SET old_fid = SELECT old_fid FROM fentrust WHERE old.fEntrustType = 1 AND old.fstatus = 1 AND new.fstatus IN(2,3)
SET trade_account = (SELECT fsuccessamount FROM fentrust WHERE old.fEntrustType = 1 AND old.fstatus = 1 AND new.fstatus IN(2,3))
SET old_account = (SELECT ftotalrmb FROM fwallet WHERE fid = old_fid)
UPDATE fwallet SET ftotalRMB = (old_account-trade_account*0.005)
END
上面的语法有问题 总报错 求助应该怎么写 谢谢
CREATE TRIGGER tradecost
BEFORE UPDATE ON fentrust
FOR EACH ROW
BEGIN
UPDATE fwallet t SET t.ftotalRMB = 1
END
这样也是报错,什么原因呢
报什么错最好说出来。
DELIMITER $$
CREATE
/*[DEFINER = { user | CURRENT_USER }]*/
TRIGGER v_coin
.tradecost
AFTER UPDATE
ON v_coin
.fentrust
FOR EACH ROW BEGIN
IF old.fEntrustType = 1 AND old.fstatus = 1 AND new.fstatus IN(2,3);
UPDATE fwallet SET ftotalRMB = ((SELECT ftotalrmb FROM fwallet WHERE fid = old.fus_fid)-old.fsuccessamount*0.005);
END$$
DELIMITER ;
修改之后还是有问题 但是去掉IF语句就能执行了 求指点
少个 END IF; 解决了