1 つのテーブル (A) への行の挿入に応答して、3 番目のテーブル (C) (最初のテーブルに結合可能) の値に基づいて、2 番目のテーブル (B) で複数の行を作成または更新しようとしています。 .
私は次の構造を持っています、
CREATE TRIGGER MyTrigger AFTER INSERT ON A
BEGIN
INSERT OR REPLACE INTO B (ID, T1, T2, Role)
VALUES
(
( SELECT ID FROM C WHERE R1 = NEW.R1 ),
NEW.T1,
B.T2, -- The existing row's T2
( SELECT Role FROM C WHERE R1 = NEW.R1 ),
)
END;
Table A has columns ID, T1, R1
Table B has columns ID, T1, T2, Role
Table C has columns ID, R1, R2, Role
トリガーを作成しようとして、少なくとも 2 つの問題があります。
- REPLACE ケースで B の既存の値を参照する方法がわからないため、「B.T2」
- テーブル B で INSERT/REPLACE を実行するときに、テーブル C の同じ行から複数の列 (R1、Role) を参照する方法がわかりません。
これを整理するのに助けてくれてありがとう。