我試圖響應在一個表(A)中插入一行以基於第三個表的值創建或更新第二個表(B)中的多個行(C)(可以加入第一個)。SQLite觸發器插入/替換多行多表
我有以下的構造,
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
我至少有兩個問題,我嘗試在構成觸發
- 我不知道如何引用在替換B的現有值case,因此「B.T2」
- 我不知道如何在表B中執行INSERT/REPLACE時引用表C中同一行的多個列(R1,角色)。
感謝您對此進行整理的任何幫助。
使用'SELECT ... FROM B,其中ROWID = NEW.ROWID',而不是'VALUES(...)' –
你最好寫一個答案,並接受它!只是爲了避免保持開放的問題。 –