无法更新存储函数/触发器中的表“transferoffer”,因为调用此存储函数/触发器的语句已使用它

ua4mk5z4  于 2021-08-13  发布在  Java
关注(0)|答案(0)|浏览(275)
INSERT INTO Responds(ClubName, TransferID, AgentName)
SELECT c.ClubName, tf.TransferID, pa.AgentName FROM 
TransferOffer tf
JOIN
Club c ON tf.RespondingClubName = c.ClubName
JOIN FootballPlayer fp ON fp.PlayerID = tf.PlayerID
JOIN player_agent pa ON pa.PlayerID = tf.PlayerID
JOIN Agent a ON a.AgentName = pa.AgentName;

我正试图插入上表。但我得到下面这个错误。
mysql说:文档#1442-无法更新存储函数/触发器中的表'transferoffer',因为调用此存储函数/触发器的语句已经在使用它。

CREATE TRIGGER `agency_responds` AFTER INSERT ON `responds`
 FOR EACH ROW # update agency answer
UPDATE responds r
JOIN TransferOffer tp ON tp.TransferID = r.TransferID
JOIN FootballPlayer fp ON tp.PlayerID = fp.PlayerID
AND tp.Fee > fp.TransferFee
SET AgencyAnswer = "Accepted"

我不太了解触发器。但是我想在插入responses表之后使用相同的例程。这些代码的逻辑是否错误?是不是因为我没有用新的和旧的词?在responses表中插入新值时,我想检查“tp.fee>fp.transferfee”,并立即更新responses表。我试着在插入后使用触发器。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题