sqlite ОБНОВЛЯЮТ триггер, стреляющий в операторы INSERT также?

Я работаю над установкой простой базы данных 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

Я предполагаю, что не добираюсь, почему триггерные огни ОБНОВЛЕНИЯ ВСТАВЛЯЮТ также?

TIA,

Монте-Карло

Отредактированный для добавления: Какие-либо подсказки, как заставить его работать, как предназначено?

6
задан Jim Dennis 26 February 2015 в 22:26
поделиться