Latest web development tutorials

SQLite Trigger

SQLite триггер базы данных является функцией обратного вызова, она будет выполняться автоматически, когда происходит вызов / заданного события базы данных. Ниже приведены основные моменты на курке: SQLite SQLiteтриггера (триггера) функция обратного вызова из базы данных, он будет автоматически выполнять вызов / при возникновении определенных событий базы данных.Ниже приведены основные моменты о SQLite триггеров (триггер) из:

  • SQLite триггеров (триггер) триггеры могут быть определены в момент возникновения конкретной таблицы базы данных DELETE, INSERT или UPDATE, или срабатывает, когда один или более конкретных столбцах обновление таблицы происходит.

  • SQLite поддерживает только для каждого ряда триггеров (триггер), а не для каждого оператора триггеров (триггер). Таким образом, в явном виде указать для каждой строки не является обязательным.

  • Когда пункт и триггер (триггер) действие может получить с помощьюNEW.column имя-форма и OLD.column имя-ссылки, вставленные, удаленные или обновленные элементы строки, имя столбца связано с курком из столбцов таблицы имя.

  • Когда пункт, если это предусмотрено, верно только для Когда пункт определяет строки для выполнения операторов SQL. Если нет если положение не выполняется операторы SQL для всех строк.

  • После выполнения действий триггера до или после ключевого слова определяет, когда действие триггера, решение вставляется в связанных линий, или перед тем, как удалить или изменить.

  • Когда таблица, связанная с триггером удаляются автоматически удалить триггер (триггер).

  • Для редактирования таблицы должны существовать в той же базе данных , как спусковой крючок прилагается таблицы или представления, и должны использовать толькоимя_таблицы, вместо database.tablename.

  • Функция ПОДЪЕМ специальный SQL () может использоваться для запуска исключение в рамках программы.

грамматика

Создатьтриггер (триггер) Основной синтаксис выглядит следующим образом :

CREATE TRIGGER имя_триггера [ДО | ПОСЛЕ] event_name 
ON table_name
НАЧАТЬ
 - Trigger логика здесь идет ....
END;

Здесь event_name можно упомянуть в таблице table_nameизINSERT, DELETE и UPDATEоперации с базами данных. При желании можно указать FOR EACH ROW после имени таблицы.

Указаны в операции UPDATE в одной или нескольких таблиц на столбцы создать триггер (триггер) Синтаксис следующее:

CREATE TRIGGER имя_триггера [перед | ПОСЛЕ] ОБНОВЛЕНИЕ column_name 
ON table_name
НАЧАТЬ
 - Trigger логика здесь идет ....
END;

примеров

Предположим ситуацию, когда мы хотим быть вставлены во вновь созданную таблицу компании (если он уже существует, удалите воссозданной) в каждом из теста аудита ведения записей:

SQLite> CREATE TABLE COMPANY (
   ID INT PRIMARY KEY NOT NULL,
   NAME TEXT NOT NULL,
   AGE INT NOT NULL,
   АДРЕС CHAR (50),
   ЗАРПЛАТА РЕАЛ
);

Для поддержания аудита испытаний, мы создадим новую таблицу под названием АУДИТ. Всякий раз, когда таблица КОМПАНИЯ имеет новый вход записи, сообщение журнала будет вставлен:

SQLite> CREATE TABLE AUDIT (
    EMP_ID INT NOT NULL,
    ENTRY_DATE TEXT NOT NULL
);

Здесь идентификатор AUDIT идентификатор записи, EMP_ID идентификатор из таблицы КОМПАНИ, ДАТА будет держать метку времени создается, когда КОМПАНИЯ записывается. Итак, теперь давайте создадим триггер на таблице компании следующим образом:

SQLite> CREATE TRIGGER audit_log ПОСЛЕ ВСТАВКА 
О КОМПАНИИ
НАЧАТЬ
   INSERT INTO AUDIT (EMP_ID, ENTRY_DATE) ЗНАЧЕНИЯ (new.ID, даты и времени ( "сейчас"));
END;

Теперь мы начнем вставить запись в таблице компании, это приведет к созданию аудита таблицы журнала аудита. Итак, давайте создадим запись в таблице компании, следующим образом:

SQLite> INSERT INTO COMPANY (ID, имя, отчество, возраст, адрес, ЗАРПЛАТА)
VALUES (1, 'Paul', 32, 'Калифорния', 20000.00);

Это позволит создать запись в следующей таблице компании:

ID ИМЯ ВОЗРАСТ АДРЕС ЗАРПЛАТА
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0

В то же время, мы будем создавать запись в таблице аудита. Эта запись является результатом триггера, который является триггером мы вставляем операции над таблицами созданной компании (триггер). Кроме того, можно создавать триггеры операций обновления и удаления (триггер).

EMP_ID ENTRY_DATE
---------- -------------------
12013-04-05 6:26:00

Списки запуска (TRIGGERS)

Вы можете перечислить все триггеры из таблицыsqlite_master, следующим образом :

SQLite> SELECT имя FROM sqlite_master
Где тип = 'триггер';

Данное заявление SQLite перечисляет только одну запись, следующим образом:

имя
----------
audit_log

Если вы хотите перечислить на спусковой крючок на конкретной таблице, используйте и пункт для объединения таблиц распределились следующим образом:

SQLite> SELECT имя FROM sqlite_master
Где тип = 'триггер' AND tbl_name = 'КОМПАНИЯ';

Данное заявление SQLite перечисляет только одну запись, следующим образом:

имя
----------
audit_log

Удалить триггер (TRIGGERS)

Ниже приводится команда DROP может быть использован для удаления существующего триггера:

SQLite> DROP TRIGGER имя_триггера;