Как скопировать ВСТАВКИ в отдельную таблицу? - PullRequest
0 голосов
/ 27 июня 2011

Установленное мною приложение iPhone использует базу данных SQLite для регистрации записей, в которых выполняются базовые INSERTS и DELETES.

Однако я хочу вести постоянный журнал ВСТАВКИ, сделанные в эту таблицу, поэтому, когда происходит ВСТАВКА, я хочу, чтобы она также была записана в другую таблицу, чтобы создать журнал.

У меня нет доступа к исходному коду приложения для изменения сделанных операторов SQL, но у меня есть доступ к базе данных SQLite.

Могу ли я сделать это с помощью триггеров? Если так, то кто-нибудь может привести короткий пример.

Ответы [ 2 ]

3 голосов
/ 27 июня 2011

Никогда не использовал 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;

HTH

1 голос
/ 27 июня 2011

Какую часть ссылки на SQLite, которую вы получаете с помощью Google, и поисковых терминов "триггер sqlite" (а именно Язык запросов SQLite: CREATE TRIGGER ), вы испытываете затруднения в понимании?

CREATE TRIGGER ins_maintable AFTER INSERT ON MainTable
    FOR EACH ROW BEGIN INSERT INTO LoggingTable VALUES(NEW.Column1, ...); END;

Непроверенный код ... если верить синтаксической диаграмме, необходимы обе точки с запятой; или, по крайней мере, тот, который нужен перед END.

...