如果我单独创建这两个MySQL触发器,两者都执行正常。但我没有设法将它们结合起来,以便能够延长持续时间x率。Mysql触发器,选择并更新
DROP TRIGGER IF EXTERNTS deduct_balance
; CREATE DEFINER = root
@localhost
TRIGGER deduct_balance
更新后ON transactions
FOR EACH ROW SET @Rate =(SELECT速率FROM语言WHERE languages.idlanguages = contracts.languages_idlanguajes);
DROP TRIGGER IF EXTERNTS deduct_balance
; CREATE DEFINER = root
@localhost
TRIGGER deduct_balance
UPDATE ON transactions
FOR EACH ROW AFTER UPDATE SET合同= balance
平衡 - (UNIX_TIMESTAMP(NEW.end_date) - UNIX_TIMESTAMP(OLD.start_date))/ 60 WHERE contracts.idcontracts =新.contracts_idcontracts
COMBINED(I GET ERROR) DROP TRIGGER IF EXTERNTS deduct_balance
; CREATE DEFINER = root
@localhost
TRIGGER deduct_balance
更新后ON transactions
FOR EACH ROW SET @Rate =(SELECT速率FROM语言WHERE languages.idlanguages = contracts.languages_idlanguajes); UPDATE contracts SET balance
= balance - (UNIX_TIMESTAMP(NEW.end_date) - UNIX_TIMESTAMP(OLD.start_date))/ 60; WHERE contracts.idcontracts = new.contracts_idcontracts
任何想法?
我得到这个错误 错误 CONSULTA SQL:
UPDATE合同SET balance
=平衡 - (UNIX_TIMESTAMP(NEW.end_date) - UNIX_TIMESTAMP(OLD.start_date))/ 60; 的MySQL公顷dicho:Documentación
你会得到什么错误? – dgig
你有额外的;在COMBINED查询中的WHERE之前。 'balance - (UNIX_TIMESTAMP(NEW.end_date) - UNIX_TIMESTAMP(OLD.start_date))/ 60; WHERE' – Tin
正确的;不应该在那里,但错误仍然存在 – Victor