触发查询数据

时间:2018-12-13 17:43:49

标签: mysql sql triggers

我的桌子上有以下信息:

INSERT INTO Transferencias
('Origem_Apostador_ID', 'Destino_Apostador_ID', 'Valor_Transferido')
VALUES
('1', '6', '200.00');

在将该值插入到下表中之后,我需要获取值“ 200.00”并与另一个表中的数据求和:

INSERT INTO Conta
('Apostador_ID', 'Saldo', 'Qtd_Saque', 'Qtd_Deposito', 'Qtd_Transferencia')
VALUES
('1', '700.00', '0', '1', '0');

我不知道如何使用查询中的数据对“ Saldo”列进行更新。

1 个答案:

答案 0 :(得分:1)

我不知道我是否正确理解了您的问题,但我认为您需要这样的内容:

UPDATE Conta 
   SET Saldo = Saldo + (SELECT Valor_Transferido FROM Transferencias WHERE Origem_Apostador_ID = '1') 
 WHERE Apostador_ID = '1';

如果需要,可以将此代码添加到某些触发器。您可以在其中找到许多示例,这些示例可以根据您的数据库使用简单的触发器来完成工作。

MYSQL上的触发示例

CREATE TRIGGER TRG_UPDATE_SALDO BEFORE INSERT ON Transferencias
FOR EACH ROW
   BEGIN
       IF NEW.Valor_Transferido > 0 THEN

    --Increments the destination account
    UPDATE Conta 
       SET Saldo = Saldo + NEW.Valor_Transferido 
     WHERE Apostador_ID = NEW.Destino_Apostador_ID;

    --Subtracts the origin account
    UPDATE Conta 
       SET Saldo = Saldo - NEW.Valor_Transferido 
     WHERE Apostador_ID = NEW.Origem_Apostador_ID;
       END IF;
   END;