Rumah > Artikel > pangkalan data > Bagaimana untuk membuang pencetus dalam MySQL
MySQL ialah sistem pengurusan pangkalan data hubungan yang berkuasa Ia mempunyai kelebihan fleksibiliti, skalabiliti dan keselamatan dan digunakan secara meluas dalam pelbagai aplikasi. Dalam MySQL, pencetus ialah prosedur tersimpan khas yang mentakrifkan tindakan pada jadual pangkalan data sebagai tindak balas kepada peristiwa. Walau bagaimanapun, dalam beberapa kes, kami mungkin perlu memadamkan pencetus MySQL kerana ia tidak lagi diperlukan atau kerana terdapat masalah dengannya. Artikel ini akan memperkenalkan cara memadam pencetus dalam MySQL.
Sebelum memadamkan pencetus MySQL, kita perlu mencari sama ada pencetus MySQL wujud untuk menentukan nama dan lokasi pengkalan data yang akan dipadamkan . Kita boleh menggunakan sintaks berikut untuk menyenaraikan semua pencetus dalam pangkalan data:
TUNJUKKAN PENCETUS [FROM db_name] [LIKE 'pattern'];
di mana [FROM db_name] adalah pilihan , yang mewakili nama pangkalan data untuk ditanya Jika tiada nama pangkalan data ditentukan, pangkalan data semasa digunakan secara lalai. [LIKE 'pattern'] juga adalah pilihan Ia menunjukkan corak nama pencetus untuk ditanya Jika tiada corak dinyatakan, semua pencetus akan disenaraikan.
Sebagai contoh, kita boleh menggunakan arahan berikut untuk mencari sama ada pencetus bernama "user_log" wujud dalam pangkalan data "mydb":
TUNJUKKAN PENCETUS DARI mydb SEPERTI 'user_log';
Jika pencetus wujud, baris yang mengandungi maklumat terperinci tentang pencetus akan dikeluarkan, seperti peristiwa pencetus, masa dan tindakan peristiwa pencetus, dsb.
Setelah kami menentukan nama pencetus MySQL untuk dipadamkan dan pangkalan data di mana ia berada, kami boleh menggunakan sintaks berikut untuk memadam pencetus MySQL:
JATUHKAN PENCETUS [JIKA WUJUD] [schema_name.]trigger_name;
Di mana [JIKA WUJUD] adalah pilihan, ini bermakna operasi padam hanya akan dilakukan apabila pencetus kepada dipadamkan wujud. [schema_name.]trigger_name mewakili nama pencetus yang akan dipadamkan dan nama pangkalan data di mana ia berada (jika tidak dinyatakan, pangkalan data semasa digunakan). Sebagai contoh, kita boleh menggunakan arahan berikut untuk memadamkan pencetus bernama "user_log" dalam pangkalan data "mydb":
DROP TRIGGER JIKA WUJUD mydb.user_log;
Jika pencetus wujud, ia akan Padamkannya dan mencetak mesej yang mengesahkan bahawa pemadaman berjaya.
Perlu diambil perhatian bahawa dalam MySQL, pencetus sistem tidak boleh dipadamkan, atau pencetus dirujuk oleh objek lain. Jika anda cuba memadamkan pencetus ini, anda akan menerima mesej ralat.
Andaikan kita mahu memadamkan pencetus berikut:
BUAT TRIGGER user_log
SELEPAS INSERT PADA user_table
UNTUK SETIAP ROW
INSERT IN TO log_table VALUES (user(), NOW(), 'insert');
Nama pencetus ini ialah "user_log", yang bertindak balas kepada acara sisipan pada jadual "user_table" dan memasukkan pengguna semasa , masa semasa dan jenis operasi dimasukkan ke dalam jadual "log_table". Sekarang, kami mahu mengalih keluar pencetus ini. Mula-mula, kita perlu mencari sama ada pencetus ini wujud Anda boleh menggunakan arahan berikut:
TUNJUKKAN PENCETUS DARIPADA mydb SEPERTI 'user_log';
Jika pencetus wujud, mesej yang serupa dengan yang berikut akan menjadi output :
Pencetus | Peristiwa | Jadual | Pernyataan | Masa | Dibuat | sql_mode | Pentakrif | character_set_client | collation_connection th> | Pengumpulan Pangkalan Data | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
log_pengguna | INSERT | jadual_pengguna |
Trigger | Event | Table | Statement | Timing | Created | sql_mode | Definer | character_set_client | collation_connection | Database Collation |
---|---|---|---|---|---|---|---|---|---|---|
user_log | INSERT | user_table | AFTER | 2022-08-10 | root@% | utf8 | utf8_general_ci | utf8_general_ci |
LEPASKAN PENCETUS JIKA WUJUD mydb.user_log;Jika pencetus wujud, ia dipadamkan dan mesej berikut dikeluarkan: Pertanyaan OK, 0 baris terjejas (0.00 sec)Ini menunjukkan bahawa operasi berjaya diselesaikan dan pencetus telah dialih keluar. RingkasanMengalih keluar pencetus dalam MySQL adalah tugas biasa kerana ia membantu kami membersihkan pangkalan data dan menjadikannya lebih cekap dan boleh dipercayai. Artikel ini memperkenalkan cara mencari dan memadam pencetus dalam MySQL dan menyediakan contoh arahan saya harap ia akan membantu anda. Jika anda mempunyai sebarang soalan atau cadangan, sila tinggalkan mesej dalam komen dan kami akan menghubungi anda secepat mungkin.
Atas ialah kandungan terperinci Bagaimana untuk membuang pencetus dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!