Вам понадобится использовать подзапрос для доступа к другой таблице (truefacts) (поскольку нигде не существует FROM truefacts), например: -
CREATE TRIGGER zz_worktags_last_updated AFTER UPDATE ON worktags BEGIN
UPDATE worktags SET
last_updated = (SELECT fact FROM truefacts WHERE about = 'Last Worktag Update');
END;
То естьтогда нет необходимости в TRIGGER, поскольку подзапрос может быть встроен в ОБНОВЛЕНИЕ.
например, рассмотрим следующий пример: -
DROP TRIGGER IF EXISTS zz_worktags_last_updated;
DROP TABLE IF EXISTS worktags;
DROP TABLE IF EXISTS truefacts;
CREATE TABLE worktags (
worktag_id integer not null primary key,
worktag character(32) not null default '' unique,
last_updated character(32) not null default '[Error]'
);
CREATE TABLE truefacts (
about character(32) not null primary key,
fact character(32) not null
);
INSERT INTO truefacts VALUES('Last Worktag Update','xxx');
INSERT INTO worktags (worktag,last_updated) VALUES('mytag',(datetime('now')));
SELECT * FROM worktags;
UPDATE worktags SET last_updated = (SELECT fact FROM truefacts WHERE about = 'Last Worktag Update'), worktag = 'aaaa' WHERE worktag_id = 1;
SELECT * FROM worktags;
UPDATE truefacts SET fact = 'zzzz' WHERE rowid = 1;
CREATE TRIGGER zz_worktags_last_updated AFTER UPDATE ON worktags BEGIN
UPDATE worktags SET
last_updated = (SELECT truefacts.fact FROM truefacts WHERE truefacts.about = 'Last Worktag Update');
END;
UPDATE worktags SET worktag = 'bbbb' WHERE worktag_id = 1;
SELECT * FROM worktags;
Это: -
- Удаляет таблицы и триггеры, если они существуют (поэтому их можно выполнить повторно)
- Создайте 2 таблицы и заполните их.
Выбирает все из таблицы рабочих тегов (только 1 строка)
Обновляет строку в таблице рабочих тегов, используя подзапрос (это пример, не требующий триггера)
- Выбирает все из обновленного (безтриггер) таблица рабочих тегов.
- Обновляет столбец фактов truefacts (чтобы показать, что триггер работает) 6.Создает триггер.
- Обновляет строку в таблице рабочих тегов,изменение столбца рабочей метки, оставив изменение в столбце last_updatedУмножение, которое должно быть выполнено триггером.
- Выбирает все из , обновляемого таблицей рабочих тегов .
Запуск приведенных выше результатов приводит к:
![enter image description here](https://i.stack.imgur.com/vHkWn.png)
![enter image description here](https://i.stack.imgur.com/Hv9PY.png)
и, наконец,
![enter image description here](https://i.stack.imgur.com/5qRgd.png)