Obsah
PostgreSQL nám umožňuje používat různé jazyky k provádění funkcí, tato funkce je velmi užitečná a činí z ní jednu z nejflexibilnějších a nejvýkonnějších databází, ale také nám umožňuje funguje jako spouště, tj. funkce, které automaticky zjistí, k jaké akci došlo, a spustí jinou akci, tj. vložíme -li do tabulky například spoušť aktualizovat v jiném, dát velmi základní operaci toho, co je spouštěč.Funkce jako spouště
Žádný hodnotný databázový stroj by neměl být bez možnosti použití spouští automaticky detekovat a zpracovávat změny v datech. PostgreSQL nabízí spouštěče na úrovni příkazů a záznamů; ty, které jsou na úrovni věty, běží jednou pro každou větu, zatímco ty, které jsou na úrovni registrů, mohou běžet mnohokrát, například pokud provedeme AKTUALIZACE což ovlivní 1 500 záznamů, spoušť na úrovni věty by se spustila pouze jednou, zatímco spoušť záznamu by se spustila až 1 500krát.
Dalším důležitým bodem v tomto tématu je rozlišení mezi pokyny PŘED, DESPUES DE a NAMÍSTO Z ve spouště.
Spoušť, se kterou pracuje PŘED vystřelí před provedením příkazu a poskytne příležitost změnit nebo zrušit nebo manipulovat s daty, než se změní, a PO spoušti spouští se po provedení změny, což dává příležitost získat již upravená data, tento typ spouště se většinou používá v protokolech a replikačních funkcích, MÍSTO SPOUŠTĚČE Běží místo akce, která by se normálně prováděla, další ze zvláštností tohoto je, že pracuje pouze s pohledy.
Vytvořte si funkci pomocí spouště
Když mluvíme o funkcích, víme, že k tomu můžeme použít jiné jazyky, v případě funkcí, jako jsou spouště, je také možné použít téměř jakýkoli jazyk, nicméně PL / pgSQL Plnění těchto úkolů je oblíbené, proto následující příklad, který uvidíme na obrázku, bude vytvořen v tomto jazyce, poté, co uvidíme příklad, to podrobně vysvětlíme:
1. Funkce je definována jako spouštěč a lze ji použít v jakékoli tabulce, která má sloupec upd_ts. Hodnota tohoto sloupce bude před návratem změněna. Hovor se uskuteční při události PŘED protože kdyby to bylo použito v DESPUES DE všechny změny nového záznamu budou ignorovány.
2. Spoušť se spustí před uložením záznamu.
3. Tato funkce, která je k dispozici pouze v PostgreSQL 9.0 nebo vyšší nám umožňuje upravit pouze záznamy, které byly skutečně ovlivněny, v předchozích verzích bylo nutné provést srovnání mezi starým a novým polem, toto však není podporováno pro událost INSTEAD OF.
4. Propojíme Trigger se stolem.
Tímto dokončujeme tento tutoriál, kde jsme viděli, jak vytvořit Trigger, který bude implementován do funkce, a navíc vědět, jaké události můžeme použít, když je potřebujeme.Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod