私が作成したい sqlite3 トリガーは、SQL では可能である場合と不可能である場合があります。5 つのテーブルが含まれます。
Members               Groups                  GroupMembers      Accounts       
mId |name| accId      gId | name | accId      gId | mId         accId | balance
Orders
oId | accId | ammount
誰かがグループを削除したときに、グループのメンバーごとにグループ残高の平均で注文したいです。したがって、次のようにする必要があります。
CREATE NEW TRIGGER triggername 
BEFORE DELETE ON Groups
WHEN ((SELECT balance FROM Accounts WHERE accId=OLD.accId) = 0)
FOR EACH ROW IN 
(SELECT accId 
FROM GroupMembers JOIN Members ON GroupMembers.mId = Members.mId 
WHERE GroupMembers.gId = OLD.gId)
BEGIN
INSERT INTO Orders(accId,ammount) VALUES(accId, 
(SELECT balance FROM Accounts WHERE accId = OLD.accId)
 / 
(SELECT SUM(mId) FROM GroupMembers WHERE gId = OLD.gId)
);
END
問題は、トリガーが適用されるテーブル以外のテーブルに FOR EACH ROW を作成することは可能かということです。FOR EACH ステートメントの前に WHEN ステートメントを置くことは可能ですか?