我的桌子上有以下信息:
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”列进行更新。
答案 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;