Artikel ini membawa anda pengetahuan yang berkaitan tentang mysql, yang terutamanya mengatur isu yang berkaitan dengan pencetus, termasuk sebab pencetus diperlukan, gambaran keseluruhan pencetus, penciptaan pencetus, dsb. Mari kita lihat kandungan di bawah, saya harap ia akan membantu semua orang.
Pembelajaran yang disyorkan: tutorial video mysql
1 Mengapa pencetus diperlukan
Sesetengah jadual adalah saling eksklusif Berkaitan, seperti jadual produk dan jadual inventori, jika kami mengendalikan data jadual produk, jadual inventori yang sepadan mesti diubah, untuk memastikan integriti data. Lebih menyusahkan jika kita menyelenggaranya sendiri secara manual.
Pada masa ini, kami boleh menggunakan pencetus untuk mencipta pencetus supaya operasi pemasukan data maklumat produk secara automatik mencetuskan operasi pemasukan data inventori, dsb., supaya kami tidak perlu risau tentang kehilangan data kerana terlupa menambah data inventori .
2. Gambaran keseluruhan pencetus
- MySQL menyokong pencetus bermula dari versi 5.0.2
- Pencetus MySQL adalah sama seperti prosedur tersimpan program yang dibenamkan dalam pelayan MySQL
- Pencetus ialah peristiwa yang mencetuskan operasi Peristiwa ini termasuk memasukkan, memadam, mengemas kini acara
- Jika atur cara pencetus ditakrifkan, maka pangkalan data Apabila pernyataan ini. dilaksanakan, ia adalah bersamaan dengan kejadian peristiwa, yang secara automatik akan mencetuskan pencetus untuk melaksanakan operasi yang sepadan
- Jika anda memasukkan data ke dalam jadual dalam pangkalan data, anda perlu melaksanakan beberapa secara automatik operasi pangkalan data Apabila ia datang kepada logik, kita boleh menggunakan pencetus untuk melaksanakannya.
3. Penciptaan pencetus
3.1 Sintaksis
Pencetus bertindak pada jadual. Perlaksanaan pencetus dicetuskan semasa merakam, dan anda juga perlu memilih sama ada pencetus dilaksanakan sebelum atau selepas pernyataan sisipan dilaksanakan.
- untuk setiap baris menunjukkan bahawa setiap kali acara (masukkan, kemas kini atau padam) dilaksanakan, pencetus akan dicetuskan
CREATE TRIGGER 触发器名称
{BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名
FOR EACH ROW 触发器执行的语句块;
Salin selepas log masuk
Penerangan:
表名
: Menunjukkan objek yang dipantau oleh pencetus.
BEFORE|AFTER
: Menunjukkan masa pencetus. SEBELUM bermaksud pencetus sebelum acara; SELEPAS bermaksud pencetus selepas peristiwa.
-
INSERT|UPDATE|DELETE
: Menunjukkan peristiwa yang dicetuskan.
- INSERT bermaksud mencetuskan apabila rekod dimasukkan;
- KEMASKINI bermaksud mencetuskan apabila rekod dikemas kini;
-
- : Ia boleh menjadi satu pernyataan SQL atau blok pernyataan majmuk yang terdiri daripada struktur BEGIN...END.
触发器执行的语句块
3.2 Demonstrasi Kes
Sediakan jadual dahulu
Keperluan: Buat pencetus: Buat pencetus bernama before_insert dan sediakan data test_trigger Sebelum memasukkan data ke dalam jadual, masukkan maklumat log before_insert ke dalam jadual data test_trigger_log.
CREATE TABLE test_trigger (id INT PRIMARY KEY AUTO_INCREMENT,t_note VARCHAR(30));CREATE TABLE test_trigger_log (id INT PRIMARY KEY AUTO_INCREMENT,t_log VARCHAR(30));
Salin selepas log masuk
4. Lihat pencetus
Lihat pencetus adalah untuk melihat definisi, status dan sintaks pencetus yang telah wujud dalam pangkalan data Maklumat, dsb.
- Kaedah 1: Lihat takrifan semua pencetus dalam pangkalan data semasa
-
show triggers\G 注意,在SQLyog中,不能加上\G
Salin selepas log masuk
Kaedah 2: Lihat pangkalan data semasa Takrif pencetus dalam
show create trigger 触发器名
Salin selepas log masuk
Kaedah ketiga: Soal maklumat pencetus "periksa_gaji_trigger" daripada jadual TRIGGER daripada skema_maklumat perpustakaan sistem
5 Padamkan pencetus
SELECT * FROM information_schema.TRIGGERS;
Salin selepas log masuk
Pencetus juga merupakan objek pangkalan data dan pencetus juga dipadamkan menggunakan pernyataan drop
Pembelajaran yang disyorkan:
drop trigger if exists 触发器名;
Salin selepas log masuk
tutorial video mysql
Atas ialah kandungan terperinci Penguasaan lengkap pencetus MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!