Pelajaran modul (4/4)
Pemicu dan audit praktis
Sekarang kita telah mempelajari cara menempa peluru cerdas (Fungsi Pemicu), kita perlu memasangnya pada Senjata Prima asli sambil menunggu acara: inilah Pemicu yang sebenarnya! Pemicu secara formal melampirkan fungsi yang dibuat sebelumnya dan memerintahkannya untuk mengaktifkan "SEBELUM" atau "SETELAH" peristiwa CRUD tertentu pada tabel tertentu.
Ada banyak pilihan; misalnya FOR EACH ROW mengaktifkannya sekali per baris yang terpengaruh, jadi jika kueri massal adalah PEMBARUAN GLOBAL lebih dari 5 juta baris, ini akan memicu 5 juta eksekusi mikro — hati-hati dengan itu!
CREATE TRIGGER sync_inventory_trigger
-- Event options
AFTER INSERT OR UPDATE ON order_items
-- Modus operandi (singular or global macro-block FOR EACH STATEMENT)
FOR EACH ROW
-- Run the forged action
EXECUTE FUNCTION update_stock();Pemicunya tidak terlihat oleh JavaScript dan secara mandiri akan menjaga stok tetap konsisten hanya berdasarkan pembaruan yang dikirimkan dengan aman ke mesin.
Mengotomatiskan Diperbarui_Pada
Ada masalah bisnis yang selalu terjadi di mana kami lupa meneruskan { updated_at: new Date() } dalam model pembaruan JS kami. Fungsi pemicu set_updated_at dikombinasikan dengan pemicu BEFORE UPDATE menghilangkan gangguan ini, secara diam-diam memperbarui setiap perubahan rekaman secara otomatis.
Cobalah sendiri
Buat pemicu bernama 'trg_force_uppercase'.\nLampirkan dalam fase 'BEFORE INSERT' pada tabel 'pelanggan'.\nPaksa komputasi baris demi baris 'UNTUK SETIAP ROW' dan aktifkan eksekusi fungsi 'force_uppercase_name()'.\nCatatan: buat juga UDF 'force_uppercase_name' (karena lingkungan terisolasi) di bagian atas kode, lalu tambahkan pemicu deklarasi.
Tunjukkan petunjuk
Sintaks teks: buat fungsinya terlebih dahulu, lalu tambahkan CREATE TRIGGER trg_force_uppercase BEFORE INSERT ON Customer FOR EACH ROW EXECUTE FUNCTION force_uppercase_name();
Solusi tersedia setelah 3 upaya
Bunuh sensornya! Kadang-kadang kita ingin memasukkan file benih mentah atau perubahan asli sementara, melewati audit yang berisik.\nMenghapus pemicu sangatlah mudah (Anda tidak menghapus fungsi organik, Anda hanya menghapus pengikatan sensor).\nGunakan kata kunci 'DROP TRIGGER', tentukan nama dan lampiran global.
Tunjukkan petunjuk
Ingatlah untuk menentukan dari mana. DROP TRIGGER trg_force_uppercase PADA pelanggan;
Solusi tersedia setelah 3 upaya