Dari postingan blog
Pemicu MySQL:Bagaimana Anda membatalkan INSERT, UPDATE, atau DELETE dengan pemicu? Di #mysql EfNet seseorang bertanya:
Bagaimana cara membuat pemicu membatalkan operasi jika aturan bisnis saya gagal?
Di MySQL 5.0 dan 5.1 Anda perlu melakukan beberapa trik untuk membuat pemicu gagal dan mengirimkan pesan kesalahan yang berarti. FAQ MySQL StoredProcedure mengatakan ini tentang penanganan kesalahan:
SP 11. Apakah SP memiliki pernyataan “naikkan” untuk “menaikkan kesalahan aplikasi”? Maaf, tidak untuk saat ini. Pernyataan SIGNAL dan RESIGNAL standar SQL ada di TODO.
Mungkin MySQL 5.2 akan menyertakan pernyataan SIGNAL yang akan membuat peretasan ini langsung dari Pemrograman StoredProcedure MySQL menjadi usang. Apa hacknya? Anda akan memaksa MySQL untuk mencoba menggunakan kolom yang tidak ada. Jelek? Ya. Apakah itu bekerja? Tentu.
CREATE TRIGGER mytabletriggerexample BEFORE INSERT FOR EACH ROW BEGIN IF(NEW.important_value) < (fancy * dancy * calculation) THEN DECLARE dummy INT; SELECT Your meaningful error message goes here INTO dummy FROM mytable WHERE mytable.id=new.id END IF; END;