Я работаю над настройкой простой базы данных SQLite для доступа через Python. Пока у меня есть одна базовая таблица и пара триггеров - я хочу, чтобы один триггер обновлял столбец поля date_added при добавлении новой записи, а другой - для обновления столбца date_updated при последующем обновлении записи , Вот мой синтаксис SQLite для триггеров:
CREATE TRIGGER add_contact AFTER INSERT ON contact_info
BEGIN
UPDATE contact_info SET date_added = DATETIME('NOW') WHERE pkid = new.pkid;
END;
CREATE TRIGGER update_contact AFTER UPDATE ON contact_info
BEGIN
UPDATE contact_info SET date_updated = DATETIME('NOW') WHERE pkid = new.pkid;
END;
Кажется, что триггер add_contact работает нормально ... он срабатывает, когда я добавляю новую запись с помощью команды sql INSERT, как и планировалось.
Кажется, проблема в триггере update_contact ... он срабатывает при обновлении записи с помощью команды sql UPDATE (как и планировалось) и при добавлении новой записи:
т.е. когда я добавляю новую запись, я получаю ее в столбцах «date_added» и «date_updated»:
2010-07-12 05:00:06|2010-07-12 05:00:06
и когда я обновляю эту запись, она меняется следующим образом:
2010-07-12 05:00:06|2010-07-12 05:14:26
Наверное, я не понимаю, почему триггер UPDATE срабатывает и на INSERT?
ТИА
Monte
Отредактировано, чтобы добавить: Есть ли подсказки о том, как заставить его работать как задумано?