1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Transakce a ošetření chyb v PostgreSQL

Connected

cvičení

Více bloků výjimek

Protože ROLLBACK TO a SAVEPOINT nelze použít ve funkcích s obslužnými rutinami výjimek, existuje způsob, jak toto chování emulovat pomocí vnořených bloků. Tyto vnořené bloky slouží k seskupení a seřazení příkazů podle jejich vzájemných závislostí. V tomto cvičení vložíš skupinu záznamů s obslužnou rutinou výjimek, která emuluje SAVEPOINT, a poté aktualizuješ záznam s obslužnou rutinou výjimek. Příkaz pro aktualizaci skončí chybou a obslužná rutina výjimek automaticky provede rollback pouze tohoto bloku.

Pokyny

100 XP
  • V prvním bloku vlož do tabulky patients následující záznamy (a1c=5.6, glucose=93, fasting=TRUE), (6.3, 111, TRUE), (4.7, 65, TRUE) s obslužnou rutinou EXCEPTION, která do tabulky errors vloží 'failed to insert' jako hodnotu sloupce msg.
  • Otevři druhý vnořený blok a aktualizuj pacienta s ID 1 tak, aby měl hodnotu fasting nastavenou na 'true', s obslužnou rutinou výjimek, která do tabulky errors zaznamená msg s hodnotou 'Inserted string into boolean.'.
  • Uzavři oba bloky pomocí END.