Latest web development tutorials

SQLite Pemicu

SQLite Database pemicu adalah fungsi callback, maka secara otomatis akan mengeksekusi ketika panggilan / ditentukan event database yang terjadi. Berikut ini adalah poin utama di SQLite pemicu: SQLitePemicu (Pemicu) adalah fungsi callback dari database, maka secara otomatis akan mengeksekusi / panggilan saat acara database tertentu terjadi.Berikut adalah poin utama tentang pemicu SQLite (Pemicu) dari:

  • pemicu SQLite (Pemicu) pemicu dapat ditentukan pada saat terjadinya tabel database tertentu DELETE, INSERT atau UPDATE, atau dipicu ketika satu atau lebih tertentu kolom update tabel terjadi.

  • SQLite hanya mendukung UNTUK SETIAP pemicu ROW (Pemicu), tidak UNTUK SETIAP pemicu PERNYATAAN (Pemicu). Oleh karena itu, secara eksplisit menentukan UNTUK ROW SETIAP adalah opsional.

  • KETIKA klausa dan memicu (Pemicu) tindakan dapat diakses dengan menggunakan formulirNEW.column-nama dan OLD.column-namareferensi dimasukkan, dihapus atau elemen baris diperbarui, kolom-nama dikaitkan dengan pemicu dari kolom tabel nama.

  • KETIKA klausa, jika disediakan, ini berlaku hanya untuk KETIKA klausa menentukan baris untuk mengeksekusi pernyataan SQL. Jika tidak ada KETIKA klausa dijalankan pernyataan SQL untuk semua baris.

  • Setelah pelaksanaan pemicu SEBELUM atau SESUDAH kata kunci menentukan kapan tindakan pemicu, keputusan dimasukkan dalam garis terkait, atau sebelum Anda menghapus atau memodifikasi.

  • Ketika tabel yang terkait dengan pemicu dihapus secara otomatis menghapus pemicu (Pemicu).

  • Untuk memodifikasi tabel harus ada dalam database yang sama sebagai pemicu terpasang tabel atau tampilan, dan harus menggunakan hanyatablename, bukan database.tablename.

  • Sebuah fungsi RAISE SQL khusus () dapat digunakan untuk memicu pengecualian dalam program ini.

tatabahasa

Buatpemicu (Pemicu) Sintaks dasar adalah sebagai berikut:

CREATE TRIGGER TRIGGER_NAME [SEBELUM | SETELAH] event_name 
ON table_name
BEGIN
 - Logika Pemicu pergi di sini ....
END;

Di sini, event_name dapat disebutkan dalam table_nametabelINSERT, DELETE danoperasi database UPDATE. Anda dapat menentukan UNTUK SETIAP ROW setelah nama tabel.

Berikut ini ditentukan dalam operasi UPDATE dalam satu atau lebih tabel pada kolom menciptakan pemicu (Pemicu) sintaks:

CREATE TRIGGER TRIGGER_NAME [SEBELUM | SETELAH] UPDATE OF column_name 
ON table_name
BEGIN
 - Logika Pemicu pergi di sini ....
END;

contoh

Mari kita asumsikan situasi di mana kita ingin dimasukkan ke dalam tabel COMPANY baru dibuat (jika sudah ada, menghapus diciptakan kembali) di masing-masing tes pemeriksaan pencatatan:

sqlite> CREATE TABLE PERUSAHAAN (
   ID INT PRIMARY KEY NOT NULL,
   NAMA TEXT NOT NULL,
   AGE INT NOT NULL,
   ALAMAT CHAR (50),
   GAJI NYATA
);

Dalam rangka mempertahankan uji audit, kita akan membuat tabel baru yang disebut AUDIT. Setiap kali tabel PERUSAHAAN memiliki entri rekor baru, pesan log akan dimasukkan:

sqlite> CREATE TABLE AUDIT (
    Emp_id INT NOT NULL,
    ENTRY_DATE TEXT NOT NULL
);

Di sini, ID adalah AUDIT record ID, emp_id ID dari tabel PERUSAHAAN, DATE akan terus timestamp dibuat ketika PERUSAHAAN dicatat. Jadi, sekarang mari kita membuat memicu di meja PERUSAHAAN sebagai berikut:

sqlite> CREATE TRIGGER audit_log SETELAH INSERT 
ON PERUSAHAAN
BEGIN
   INSERT INTO AUDIT (emp_id, ENTRY_DATE) VALUES (new.ID, datetime ( 'sekarang'));
END;

Sekarang kita akan mulai untuk menyisipkan catatan dalam tabel COMPANY, ini akan mengarah pada penciptaan sebuah meja AUDIT Audit logging. Jadi, mari kita membuat catatan dalam tabel COMPANY, sebagai berikut:

sqlite> INSERT INTO PERUSAHAAN (ID, NAMA, UMUR, ALAMAT, GAJI)
NILAI (1, 'Paul', 32, 'California', 20.000,00);

Ini akan membuat catatan dalam tabel COMPANY berikut:

ID NAMA UMUR ALAMAT GAJI
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20.000,0

Pada saat yang sama, kami akan membuat catatan dalam tabel AUDIT. catatan ini adalah hasil dari pemicu, yang merupakan pemicu kita INSERT operasi pada tabel yang dibuat PERUSAHAAN (Pemicu). Demikian pula, dapat membuat pemicu pada UPDATE dan DELETE operasi (Pemicu).

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

Daftar memicu (PEMICU)

Anda bisa daftar semua pemicu dari mejasqlite_master, sebagai berikut:

sqlite> SELECT nama FROM sqlite_master
MANA type = 'trigger';

Pernyataan SQLite atas berisi satu entri, sebagai berikut:

nama
----------
audit_log

Jika Anda ingin daftar pemicu pada meja tertentu, gunakan DAN klausa untuk bergabung tabel adalah sebagai berikut:

sqlite> SELECT nama FROM sqlite_master
MANA type = 'trigger' AND tbl_name = 'PERUSAHAAN';

Pernyataan SQLite atas berisi satu entri, sebagai berikut:

nama
----------
audit_log

Hapus pemicu (PEMICU)

Berikut ini adalah perintah DROP dapat digunakan untuk menghapus pemicu yang ada:

sqlite> DROP TRIGGER TRIGGER_NAME;