Ana içeriğe geç
Modül 12 · Ders 4 ders 4Kurstaki 48/57~12 min
Modül dersleri (4/4)

Pratik tetikleyiciler ve denetim

Artık akıllı mermileri (Tetikleme İşlevleri) nasıl oluşturacağımızı öğrendiğimize göre, onları bir olayı bekleyen gerçek Hazır Silahlara yerleştirmemiz gerekiyor: işte gerçek Tetikleyiciler geliyor! Bir tetikleyici, önceden oluşturulmuş bir işlevi resmi olarak ekler ve ona belirli bir tablodaki belirli bir CRUD olayından "ÖNCE" veya "SONRA" başlatılması talimatını verir.

Pek çok seçenek var; örneğin FOR EACH ROW bunu etkilenen satır başına bir kez tetikler, yani toplu bir sorgu 5 milyon satırı aşan bir GLOBAL GÜNCELLEME ise, 5 milyon mikro yürütmeyi tetikler; buna dikkat edin!

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();

Tetikleyici, JavaScript tarafından görülmez ve motora güvenli bir şekilde gönderilen güncellemelere dayalı olarak stoğu bağımsız olarak mükemmel bir şekilde tutarlı tutar.

Update_At'ı Otomatikleştirme

JS güncelleme modellerimizde { updated_at: new Date() }'yi geçmeyi unuttuğumuz her zaman devam eden bir iş sorunu var. set_updated_at tetikleyici işlevi, BEFORE UPDATE tetikleyiciyle birleştiğinde bu sorunu ortadan kaldırır ve her kayıt değişikliğini otomatik olarak sessizce günceller.

Kendin dene

Egzersiz#sql.m12.l4.e1
Denemeler: 0Yükleniyor…

'trg_force_uppercase' adında bir tetikleyici oluşturun.\n'Müşteriler' tablosunun 'BEFORE INSERT' aşamasına ekleyin.\n'HER SATIR İÇİN' satır satır hesaplamayı zorlayın ve 'force_uppercase_name()' işlevinin yürütülmesini çağırın.\nNot: ayrıca kodun üst kısmında 'force_uppercase_name' UDF'sini yeniden oluşturun (ortam yalıtılmış olduğundan) ve ardından ekleyin tetikleyici bildirimi.

Düzenleyici yükleniyor…
İpucu göster

Metin sözdizimi: önce işlevi oluşturun, ardından CREATE TRIGGER'ı ekleyin trg_force_uppercase BEFORE INSERT ONmüşteriler İÇİN HER SATIR ÇALIŞTIRMA FONKSİYONUforce_uppercase_name();

3 denemeden sonra çözüm mevcut

Egzersiz#sql.m12.l4.e2
Denemeler: 0Yükleniyor…

Sensörü öldürün! Bazen gürültülü denetimleri atlayarak ham çekirdek dosyalarını veya geçici yerel değişiklikleri iletmek isteriz.\nBir tetikleyiciyi bırakmak son derece basittir (organik işlevi silmezsiniz, yalnızca sensör bağlamayı silersiniz).\nAdı ve genel eki belirterek 'DROP TRIGGER' anahtar kelimesini kullanın.

Düzenleyici yükleniyor…
İpucu göster

Nereden geldiğini belirtmeyi unutmayın. DROP TRIGGER trg_force_uppercase ON müşterileri;

3 denemeden sonra çözüm mevcut