Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk membuang pencetus dalam MySQL

Bagaimana untuk membuang pencetus dalam MySQL

PHPz
PHPzasal
2023-04-19 14:12:382180semak imbas

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.

  1. Cari pencetus 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.

  1. Padamkan pencetus MySQL

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.

  1. Contoh

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
SELEPAS 2022-08-10

root@%utf8utf8_general_ci utf8_general_ci Sekarang, kita boleh menggunakan arahan berikut untuk memadamkan pencetus ini :

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.

Ringkasan

Mengalih 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!

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