Malah, pernyataan MySQL SIGNAL ialah mekanisme pengendalian ralat yang digunakan untuk mengendalikan kejadian yang tidak dijangka dan keluar dengan anggun daripada aplikasi apabila diperlukan. Pada asasnya, ia memberikan maklumat ralat kepada pengendali. Sintaks asasnya adalah seperti berikut -
SIGNAL SQLSTATE | condition_value [SET signal_information_item = value_1,[, signal_information_item] = value_2, etc;]
Di sini, kata kunci SIGNAL ialah nilai SQLSTATE atau nama syarat yang diisytiharkan oleh pernyataan DECLARE CONDITION. Pernyataan SIGNAL mesti sentiasa menyatakan nilai SQLSTATE atau syarat bernama yang ditakrifkan menggunakan nilai SQLSTATE. Nilai SQLSTATE untuk pernyataan SIGNAL terdiri daripada kod alfanumerik lima aksara. Kami tidak boleh memulakan kod SQLSTATE kami sendiri dengan "00" kerana nilai sedemikian menunjukkan kejayaan dan tidak mempunyai kesan untuk menandakan ralat. Jika nilai kami tidak sah, ralat SQLSTATE Buruk akan berlaku. Untuk menangkap semua pengendalian ralat kita harus menetapkan nilai SQLSTATE "45000" yang bermaksud "Pengecualian takrif pengguna yang tidak dikendalikan".
Untuk menggambarkan penggunaan pernyataan SIGNAL dengan pencetus MySQL, kami menggunakan contoh berikut di mana kami mencipta pencetus SEBELUM INSERT pada jadual Student_age. Jika kita cuba memasukkan umur kurang daripada 0, ia akan membuang mesej ralat menggunakan pernyataan SIGNAL.
mysql> Create trigger before_insert_studentage BEFORE INSERT on student_age FOR EACH ROW BEGIN IF NEW.age<0 then SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'age less than 0'; END if; END; // Query OK, 0 rows affected (0.12 sec) mysql> Insert into student_age(age, name) values(-10,'gaurav')// ERROR 1644 (45000): age less than 0
Dari set keputusan di atas adalah jelas bahawa jika kita cuba memasukkan umur kurang daripada 0 maka menggunakan pernyataan SIGNAL akan menimbulkan ralat.
Atas ialah kandungan terperinci Bagaimanakah kita boleh menggunakan pernyataan SIGNAL dengan pencetus MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!