Bagaimana untuk mencipta dan memadamkan pencetus MySQL

WBOY
Lepaskan: 2023-05-28 16:34:11
ke hadapan
1019 orang telah melayarinya

Bagaimana untuk mencipta dan memadamkan pencetus MySQL

1. Mengapa pencetus diperlukan

Beberapa jadual berkaitan antara satu sama lain, seperti jadual produk dan jadual inventori Kami beroperasi pada data jadual produk , maka Jadual inventori yang sepadan juga mesti diubah untuk memastikan integriti data. Lebih menyusahkan jika kita menyelenggaranya sendiri secara manual.
Pada masa ini, kita boleh menggunakan pencetus untuk mencipta pencetus supaya operasi pemasukan data maklumat produk secara automatik mencetuskan operasi pemasukan data inventori, dsb., supaya kita tidak perlu risau tentang kehilangan data akibat terlupa untuk menambah data inventori.

2. Gambaran keseluruhan pencetus

  • MySQL menyokong pencetus bermula dari versi 5.0.2

  • Pencetus MySQL, seperti stored procedure, ialah program yang dibenamkan dalam pelayan MySQL

  • Pencetus ialah peristiwa tertentu yang mencetuskan operasi Peristiwa ini termasuk memasukkan, memadam dan mengemas kini acara

  • Jika atur cara pencetus ditakrifkan, apabila pangkalan data melaksanakan pernyataan ini, ia bersamaan dengan peristiwa yang berlaku dan pencetus akan dicetuskan secara automatik untuk melaksanakan operasi yang sepadan

  • Jika kita perlu melaksanakan beberapa logik pangkalan data secara automatik apabila memasukkan data ke dalam jadual dalam pangkalan data, kita boleh menggunakan pencetus untuk mencapainya.

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 (sisipkan, kemas kini atau padam) dilaksanakan, pencetus akan dicetuskan

rreee

Penerangan :

  • 表名: Menunjukkan objek yang dipantau oleh pencetus.

  • BEFORE|AFTER: Menunjukkan masa pencetus. SEBELUM bermaksud mencetuskan sebelum acara; SELEPAS bermaksud mencetuskan selepas peristiwa.

  • INSERT|UPDATE|DELETE: Menunjukkan peristiwa yang dicetuskan.

    • INSERT bermaksud mencetuskan apabila memasukkan rekod; 🎜>

      DELETE bermaksud dicetuskan apabila rekod dipadamkan.
    • : Ia boleh menjadi satu pernyataan SQL atau blok pernyataan majmuk yang terdiri daripada struktur BEGIN...END.

    3.2 Demonstrasi Kes
  • Sediakan jadual dahulu触发器执行的语句块

    CREATE TRIGGER 触发器名称 
    {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名 
    FOR EACH ROW 触发器执行的语句块;
    Salin selepas log masuk

    Keperluan: Buat pencetus: Buat pencetus bernama before_insert dan masukkan ke dalam data test_trigger jadual Sebelum data, masukkan maklumat log before_insert ke dalam jadual data test_trigger_log.

4. Lihat pencetus


Bagaimana untuk mencipta dan memadamkan pencetus MySQL
Lihat pencetus adalah untuk melihat definisi pencetus yang telah wujud dalam pangkalan data. Maklumat status dan sintaks, dsb.Bagaimana untuk mencipta dan memadamkan pencetus MySQL

Kaedah 1: Lihat takrifan semua pencetus dalam pangkalan data semasa
  • 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

  • Kaedah 2: Lihat takrif pencetus dalam pangkalan data semasa

Bagaimana untuk mencipta dan memadamkan pencetus MySQL

show triggers\G 注意,在SQLyog中,不能加上\G
Salin selepas log masuk

  • Kaedah 3 : Soal maklumat pencetus "semak_gaji" daripada jadual TRIGERS sistem maklumat_schema

Bagaimana untuk mencipta dan memadamkan pencetus MySQL

show create trigger 触发器名
Salin selepas log masuk

5 objek, seperti juga pencetus Gunakan pernyataan drop untuk memadam
    SELECT * FROM information_schema.TRIGGERS;
    Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mencipta dan memadamkan pencetus MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan