Bagaimanakah kita boleh menggunakan pernyataan SIGNAL dengan pencetus MySQL?

PHPz
Lepaskan: 2023-09-12 18:53:07
ke hadapan
1116 orang telah melayarinya

我们如何将 SIGNAL 语句与 MySQL 触发器一起使用?

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;]
Salin selepas log masuk

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.

Contoh

mysql> Create trigger before_insert_studentage BEFORE INSERT on
student_age FOR EACH ROW BEGIN IF NEW.age<0 then SIGNAL SQLSTATE
&#39;45000&#39; SET MESSAGE_TEXT = &#39;age less than 0&#39;; END if; END; //
Query OK, 0 rows affected (0.12 sec)

mysql> Insert into student_age(age, name) values(-10,&#39;gaurav&#39;)//
ERROR 1644 (45000): age less than 0
Salin selepas log masuk

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!

sumber:tutorialspoint.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