powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / тригеры у каскадное удаление
2 сообщений из 2, страница 1 из 1
тригеры у каскадное удаление
    #37337246
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток :)

Вопрос - можно ли в тригере как-то определить, что он срабатывает из-за каскадного удаления, а не просто из-за удаления записи?

Я создал на каждую таблицу тригер нацеленный на удаление записей. Этот тригер заносит в определенную таблицу, что запись с таким-то айди удалена. Все работает хорошо, до тех пор, пока удаление не срабатывает каскадно - удаляю запись из одной таблицы должно еще из кучи. И тут возникает ошибка: "no such column: old.id"

Вообще мне не нужно, чтобы запись заносилась в эту таблицу, когда удаляется каскадно. Вот поэтому такой вопрос
...
Рейтинг: 0 / 0
тригеры у каскадное удаление
    #37341029
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о, начал разбираться, больше запутался :)

Создаю тригер
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE TRIGGER congregations_log_d_trigger 
BEFORE DELETE ON congregations FOR EACH ROW WHEN 
	(SELECT COUNT(*) FROM log_table WHERE table_name='congregations' 
		AND row=old.id AND action='I' 
		AND id > (select max(id) from log_table where action IN ('import','exportfm','export')))= 0 
BEGIN 
	DELETE FROM log_table WHERE table_name='congregations' AND row=old.id;
	INSERT INTO log_table (table_name, action, row, date_time) 
		VALUES ('congregations', 'D', old.id, strftime( '%J', 'now'));
END

congregations - таблица, к которой привязанно почти все (при помощи ключей)
если делаю PRAGMA foreign_keys=0; то все нормально
если делаю PRAGMA foreign_keys=1; то ничего не могу удалить: получаю no such column: old.id. Причем не могу удалить, даже если ничего не привязанно

В чем может быть проблемма? Я не прочитал чего-то в мануалах?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / тригеры у каскадное удаление
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]