Я пытаюсь ответить на вставку строки в одной таблице (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 в ЗАМЕНИТЬ например, «B.T2»
- Я не знаю, как ссылаться на несколько столбцов (R1, Роль) из той же строки в таблице C при выполнении INSERT/REPLACE в таблице B.
Спасибо за любую помощь в сортировке этого.
Использование 'SELECT ... FROM B WHERE ROWID = NEW.ROWID' вместо' VALUES (...) ' –
Вы бы лучше написать ответ и принять его! Просто чтобы не открывать открытые вопросы. –