Создайте триггер BEFORE в SQLite - PullRequest
1 голос
/ 17 июня 2020

Я попытался создать триггер BEFORE в SQLite для регистрации любых обновлений значений атрибута населения таблицы Country.

Сначала я создал таблицу country_log, используя следующий код:

CREATE TABLE country_log (
    CountryCode    TXT,
    old_population INT,
    new_population INT,
    change_date    TXT
);

После успешного создания таблицы я попытался использовать следующий код для создания триггера BEFORE и для обновления значения в таблице Country, чтобы избежать ошибки «Невозможно выполнить фиксацию - транзакция не активна».

CREATE TRIGGER update_country_log

BEFORE UPDATE OF population ON country

BEGIN
INSERT INTO country_log VALUES
(NEW.code, OLD.population, NEW.population, datetime('now'));
END;

UPDATE country
SET population = 24433300
WHERE code = 'AUS';

Запрос CREATE TRIGGER был успешно выполнен. Однако после выполнения запроса в таблице country_log по-прежнему не было записи, и я все еще не мог найти ни одного триггера, отображаемого рядом с таблицей Country. Почему это было так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...