Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk mencipta dan mengurus pencetus untuk pangkalan data MySQL?

Bagaimana untuk mencipta dan mengurus pencetus untuk pangkalan data MySQL?

王林
王林asal
2023-07-14 11:42:162142semak imbas

Bagaimana untuk mencipta dan mengurus pencetus untuk pangkalan data MySQL?

Dalam pangkalan data MySQL, pencetus ialah prosedur tersimpan khas yang dilaksanakan secara automatik apabila operasi pangkalan data tertentu berlaku. Dengan menggunakan pencetus, kami boleh mentakrifkan beberapa gelagat automatik pada jadual pangkalan data, seperti melaksanakan satu siri operasi apabila memasukkan, mengemas kini atau memadam data.

Artikel ini akan mengajar anda cara membuat dan mengurus pencetus dalam pangkalan data MySQL dan menyediakan beberapa contoh kod untuk membantu anda memahami dengan lebih baik.

1. Buat pencetus

  1. Pertama, kita perlu menyambung ke pangkalan data MySQL. Ia boleh disambungkan melalui alat baris arahan atau alat antara muka grafik.
  2. Sebelum mencipta pencetus, kita perlu mencipta jadual untuk menunjukkan. Andaikan terdapat jadual bernama "pengguna" dengan lajur berikut:

    CIPTA pengguna JADUAL (
    id INT PRIMARY KEY AUTO_INCREMENT,
    nama VARCHAR(50),
    umur INT
    memerlukan penggunaan

  3. a pernyataan "CREATE TRIGGER" dan nyatakan nama pencetus, masa pencetus (SEBELUM atau SELEPAS), dan operasi pangkalan data yang dicetuskan (INSERT, UPDATE, atau DELETE).
  4. Berikut ialah contoh untuk mencipta pencetus yang secara automatik menetapkan lajur "umur" kepada nilai lalai = 18 sebelum memasukkan data:

    DELIMITER //

    BUAT PENCETUS before_insert_users

    SEBELUM INSERT PADA pengguna

    W
    EA SET NEW.age = 18;
    END;
    //

    DELIMITER ;

    Nama pencetus mestilah unik. "SEBELUM INSERT" bermakna pencetus dicetuskan sebelum memasukkan data dan "UNTUK SETIAP BARIS" bermakna pencetus akan dicetuskan untuk setiap baris.

  5. Selepas mencipta pencetus, anda boleh menggunakan pernyataan "TUNJUKKAN PENCETUS" untuk melihat pencetus yang dibuat.
  6. 2. Urus pencetus

Kemas kini pencetus: Jika anda perlu mengubah suai pencetus sedia ada, anda boleh menggunakan pernyataan "ALTER TRIGGER".
  1. Berikut ialah contoh untuk mengubah suai pencetus yang dibuat sebelum ini supaya ia menetapkan lajur "umur" kepada nilai lalai = 20 apabila memasukkan data:

    DELIMITER //

    ALTER TRIGGER before_insert_users

    SEBELUM INSERTWOR ON EA

    MULA
    SET NEW.age = 20;
    END;
    //

    DELIMITER;

    Padam pencetus: Jika pencetus tidak diperlukan lagi, anda boleh menggunakan pernyataan "DROP TRIGGER" untuk memadamnya.
  2. Berikut ialah contoh untuk memadamkan pencetus yang dibuat sebelum ini:

    DROP TRIGGER before_insert_users;

    Lumpuhkan pencetus: Kadang-kadang kami tidak mahu pencetus dijalankan dan boleh dilumpuhkan menggunakan pernyataan "DISABLE TRIGGER".
  3. Berikut ialah contoh untuk melumpuhkan pencetus yang telah dibuat sebelum ini:

    LUPASKAN PENCETUS sebelum_masukkan_pengguna

    Untuk mendayakan pencetus, anda boleh menggunakan pernyataan "DAYAKAN PENCETUS". .

    UNTUK SETIAP BARISAN

    MULA

    SET BARU.order_no = CONCAT('ORD', LPAD(NEW.id, 5, '0'));

    END;
  4. //

DELIMITER ;

Di atas menggunakan contoh , pencetus Rentetan terbina dalam MySQL berfungsi CONCAT dan LPAD untuk menjana nombor pesanan. Fungsi CONCAT digunakan untuk menggabungkan rentetan, dan fungsi LPAD digunakan untuk melapik sifar di hadapan nombor pada panjang yang ditentukan.

Ringkasan:

Melalui pencetus, kami boleh mencapai operasi pangkalan data yang lebih fleksibel dan automatik. Dalam aplikasi praktikal, pencetus boleh digunakan untuk merekodkan log, mengesahkan integriti data, mengira nilai medan secara automatik, dsb. Apabila mencipta dan mengurus pencetus, anda perlu memberi perhatian kepada keunikan nama pencetus, serta definisi pemasaan pencetus dan operasi pencetus. Saya harap artikel ini dapat membantu anda lebih memahami dan menggunakan fungsi pencetus dalam pangkalan data MySQL.

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

Kenyataan:
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