Lompati ke konten utama
Modul 12 · Pelajaran 4 dari 448/57 dalam kursus~12 min
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!

SQL
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

Latihan#sql.m12.l4.e1
Upaya: 0Memuat…

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.

Memuat editor…
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

Latihan#sql.m12.l4.e2
Upaya: 0Memuat…

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.

Memuat editor…
Tunjukkan petunjuk

Ingatlah untuk menentukan dari mana. DROP TRIGGER trg_force_uppercase PADA pelanggan;

Solusi tersedia setelah 3 upaya