Как скопировать ВСТАВКИ в отдельную таблицу?

Установленное мною приложение 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.

Другие вопросы по тегам