Latest web development tutorials

SQLite wyzwalania

SQLite wyzwalacz jest funkcją oddzwaniania, automatycznie wykonywać, gdy wystąpi / określonego zdarzenia w bazie połączenia. Poniżej przedstawiono główne punkty na SQLite wyzwalania: SQLitewyzwalania (trigger) jest funkcja zwrotna bazy danych, zostanie ona automatycznie wykonywać / połączenia po wystąpieniu określonego zdarzenia bazy danych.Poniżej przedstawiono główne punkty o SQLite wyzwalaczy (trigger) z:

  • SQLite wyzwalaczy (trigger) wyzwalacze mogą być określone w momencie wystąpienia określonych tabel bazodanowych DELETE, INSERT lub UPDATE lub wyzwalane, gdy występuje jeden lub więcej określonych kolumn aktualizacji tabeli.

  • SQLite obsługuje tylko DLA KAŻDEGO wyzwalaczy wiersz (trigger), a nie DLA KAŻDEGO wyzwalaczy Statement (trigger). Dlatego jednoznacznie określić dla każdego wiersza jest opcjonalne.

  • KIEDY można uzyskać klauzuli i wyzwalacz (trigger) działania za pomocą formularzaNEW.nazwa_kolumny i OLD.nazwa_kolumnyreferencje wstawione, usunięte lub zaktualizowane elementy wiersz, kolumna nazwa związana jest z spustu z kolumn tabeli imię.

  • KIEDY klauzuli, jeżeli występuje, jest prawdziwe tylko dla KIEDY klauzuli określa wiersze do wykonania instrukcji SQL. Jeśli nie Kiedy wykonywana jest klauzula SQL dla wszystkich wierszy.

  • Po realizacji działania spustu przed lub po Hasło określa, kiedy działanie wyzwalacza, decyzja jest włożona powiązanych linii lub przed usunąć lub zmodyfikować.

  • Gdy stół związane ze spustem usunięty automatycznie usuwa wyzwalacz (trigger).

  • Aby zmodyfikować tabela muszą znajdować się w tej samej bazie danych jako wyzwalacz jest dołączony tabel lub widoków, i musi używać tylkonazwa_tabeli zamiast database.tablename.

  • Funkcja specjalnego SQL PODNOSZENIE () może być wykorzystywane do wyzwalania wyjątek w programie.

gramatyka

Tworzeniewyzwalacza (trigger) Podstawowa składnia jest następująca:

TWORZENIE TRIGGER trigger_name [PRZED | PO] EVENT_NAME 
NA table_name
BEGIN
 - Logika wyzwalania idzie tutaj ....
END;

Tutaj EVENT_NAME można wymienić w tabeli nazwa_tabeliINSERT, DELETE i UPDATEoperacje na bazie danych.Opcjonalnie można określić dla każdego wiersza po nazwie tabeli.

Poniższy są określone w operacji Update w jednej lub kilku tabel na kolumnach utworzyć wyzwalacz składni (trigger):

TWORZENIE TRIGGER trigger_name [Przed | PO] UPDATE OF column_name 
NA table_name
BEGIN
 - Logika wyzwalania idzie tutaj ....
END;

Przykłady

Załóżmy sytuację, w której chcemy być włożona do nowo utworzonej tabeli Company (jeśli już istnieje, usuń odtworzony) w każdym z testów kontroli prowadzenia rejestrów:

sqlite> CREATE TABLE Company (
   ID INT PRIMARY KEY NOT NULL,
   NAZWA TEXT NOT NULL,
   AGE INT NOT NULL,
   CHAR ADDRESS (50),
   WYNAGRODZENIE NIERUCHOMOŚCI
);

W celu utrzymania próby kontroli, będziemy tworzyć nową tabelę o nazwie AUDIT. Ilekroć Stół firma ma nowego wpisu rekordu, wiadomość dziennika w brzmieniu:

sqlite> CREATE TABLE Audytu (
    EMP_ID INT NOT NULL,
    ENTRY_DATE TEXT NOT NULL
);

Tutaj jest AUDIT ID rekordu ID, EMP_ID ID z tabeli firmy, data zachowa datownika jest tworzona, gdy Spółka jest wpisana. Więc teraz niech nam utworzyć wyzwalacz na stole Spółki w ten sposób:

sqlite> create TRIGGER audit_log AFTER INSERT 
o spółce
BEGIN
   INSERT INTO Audytu (EMP_ID, ENTRY_DATE) VALUES (new.ID, datetime ( "teraz"));
END;

Będziemy teraz zacząć wstawić rekord w tabeli Company, doprowadzi to do stworzenia tabeli AUDYTU rejestrowanie inspekcji. Więc stwórzmy rekord w tabeli Spółki, co następuje:

sqlite> INSERT INTO Company (id, nazwisko, wiek, adres, wynagrodzenia)
Wartości (1, 'Paul', 32 'California', 20000.00);

Spowoduje to utworzenie rekordu w poniższej tabeli SPÓŁKI:

NAZWA ID AGE ADRES WYNAGRODZENIE
---------- ---------- ---------- ---------- ----------
1 Paweł 32 California 20000,0

Jednocześnie, będziemy tworzyć rekord w tabeli audytu. Ta płyta jest wynikiem wyzwalacz, który jest wyzwalacz wstawić operacji na tabelach utworzonej spółce (trigger). Podobnie można tworzyć wyzwalacze na aktualizowanie i usuwanie operacji (trigger).

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

Listy wyzwalania (TRIGGERS)

Można wymienić wszystkie wyzwalacze z tabelisqlite_master, co następuje:

sqlite> SELECT name FROM sqlite_master
GDZIE type = "wyzwalania";

Powyższe stwierdzenie SQLite wymienia tylko jeden wpis, w następujący sposób:

nazwa
----------
audit_log

Jeśli chcesz umieścić na spust na określonej tabeli, użyj i klauzula dołączyć tabele przedstawiają się następująco:

sqlite> SELECT name FROM sqlite_master
GDZIE type = "wyzwalania" I nazwa_tabeli = "Spółka";

Powyższe stwierdzenie SQLite wymienia tylko jeden wpis, w następujący sposób:

nazwa
----------
audit_log

Usuń spust (TRIGGERS)

Poniżej znajduje się polecenie DROP może być stosowany do usuwania istniejącego wyzwalacza:

sqlite> trigger_name DROP TRIGGER;