Как скопировать ВСТАВКИ в отдельную таблицу?
Установленное мною приложение iPhone использует базу данных SQLite для регистрации записей, в которых выполняются базовые ВСТАВКИ и УДАЛЕНИЯ.
Однако я хочу вести постоянный журнал INSERTS, сделанных для этой таблицы, поэтому, когда INSERT происходит, я хочу, чтобы он был записан в другую таблицу также для создания журнала.
У меня нет доступа к исходному коду приложения для изменения сделанных операторов SQL, но у меня есть доступ к базе данных SQLite.
Могу ли я сделать это с помощью триггеров? Если так, может кто-нибудь привести короткий пример.
2 ответа
Никогда не использовал SQLite, но вот первая ссылка от Google: http://www.sqlite.org/lang_createtrigger.html
Вы могли бы написать что-то вроде этого, вероятно:
CREATE TRIGGER duplicate_insert INSERT ON myTable
BEGIN
INSERT INTO myDuplicateTable
VALUES(new.Id, new.Name, new.LastModified)
END;
НТН
Какую часть ссылки на SQLite, которую вы получаете с помощью Google, и поисковых терминов "триггер sqlite" (а именно SQLite Query Language: CREATE TRIGGER) вы испытываете затруднения в понимании?
CREATE TRIGGER ins_maintable AFTER INSERT ON MainTable
FOR EACH ROW BEGIN INSERT INTO LoggingTable VALUES(NEW.Column1, ...); END;
Непроверенный код... если верить синтаксической диаграмме, нужны обе точки с запятой; или, по крайней мере, тот, который нужен перед END.