带查询数据的触发器

xzv2uavs  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(346)

我有一张信息表:

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”列。

wz8daaqr

wz8daaqr1#

我不知道我是否正确理解了你的问题,但我想你需要这样的回答:

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;

相关问题