Portál AbcLinuxu, 14. května 2025 05:04

Dotaz: Jak zabezpecit trigger nad tabulkou kdyz nejde BEGIN COMMIT?

23.10.2009 13:39 Tomas
Jak zabezpecit trigger nad tabulkou kdyz nejde BEGIN COMMIT?
Přečteno: 314×
Odpovědět | Admin
Dobry den, chtel bych se zeptat zda nevite nekdo jak mam zabezpecit trigger, ktery se provadi po insertu do tabulky, tedy:

REATE TRIGGER loc_log_aktualizace_mnozstvi_vyrobku_trigger

AFTER INSERT ON loc_log

FOR EACH ROW EXECUTE PROCEDURE loc_log_aktualizace_mnozstvi_vyrobku_trigger();

Pokud bych dal kamkoliv transakci BEGIN; a nakonec COMMIT; do triggeru tak to nelze. Pomuze kdyz to dam do insertu, ktery se provadi pred triggerem? Databaze je PostgreSQL 8.1 a dotaz na insert se provadi v PHP 4...Dekuju za rady
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

okbob avatar 23.10.2009 14:21 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Jak zabezpecit trigger nad tabulkou kdyz nejde BEGIN COMMIT?
Odpovědět | | Sbalit | Link | Blokovat | Admin
V PL/pgSQL nelze pouzivat explicitni transakce - tj. vsechno bezi pod implicitni transakci, vcetne kodu tela triggeru. Tato transakce se COMMITne nebo ROLLBACKne z aplikace. Tj. pokud je vsechno ok, tak trigger provede svoji cinnost - insert, kontroly, a nic nepotvrzuje. V aplikaci pak volanim COMMIT se potvrdi vse.
23.10.2009 14:32 Tomas
Rozbalit Rozbalit vše Re: Jak zabezpecit trigger nad tabulkou kdyz nejde BEGIN COMMIT?
Takze jestli tomu rozumim, kdyz v php kodu mam pg_query("INSERT INTO..."); tak tady dam pred tento insert BEGIN; a za COMMIT; a pak je vse OK?
okbob avatar 23.10.2009 16:17 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Jak zabezpecit trigger nad tabulkou kdyz nejde BEGIN COMMIT?
At uz pracujete s implicitni transakci (tj. pokud nezadate explicitne BEGIN COMMIT, tak se automaticky vytvari transakce pro kazdy prikaz) nebo s explicitni, tak je vzdy zarucena konzistence - tj. pokud nedojde k vyjimce, tak se data zapisi. Pokud dojde k vyjimce, pak se vsechny zmeny v ramci transakce rusi.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.