#python #sqlite #sqlalchemy
#python #sqlite #sqlalchemy
Вопрос:
Я использую sqlalchemy для определения и создания базы данных sqlite; в ней есть 2 связанные таблицы, называемые Authors и Books. В обоих есть столбец, который помечает запись как избранную; Я пытаюсь встроить триггер, чтобы при обновлении authors.favorite он переходил в таблицу Books, находил каждую книгу с тем же автором (к ним присоединяется идентификатор автора), а затем обновлял книги.избранное для этой записи с тем же значением. Итак, если я говорю, что автор является фаворитом, все их книги также помечаются как избранные. Если я не добавлю их в избранное, все эти книги будут не в избранном.
Я видел кое-что о слушателях, автоматическом создании временных меток и т. Д., Но я не могу найти никакой документации о создании триггера, чтобы при обновлении одной таблицы он выходил и обновлял другую таблицу. Может кто-нибудь указать мне на некоторые ресурсы? Спасибо!
Ответ №1:
Вам нужно просто определить триггер:
CREATE TRIGGER IF NOT EXISTS update_favorites
BEFORE UPDATE
ON AUTHOR
BEGIN
UPDATE BOOKS
SET favorite = new.favorite
WHERE author_id = new.author_id;
END;