Üritan PgAdminis käivitada PostgreSQL andmebaasi vastu SQL skripti, mis sisaldab VACUUM lauseid ja saan veateate: "ERROR: VACUUM cannot run inside a transaction block". Mida teha?

Postitas Erki Eessaar 20.11.2023 13:31 (muudeti 20.11.2023 13:33)
Kui käivitate PgAdminis Query Tool akna kaudu skripti, kus on rohkem kui üks SQL lause, siis paneb PgAdmin need laused automaatselt transaktsiooni e tehingu plokki.

Seega, kui käivitan andmebaasis PgAdmin kaudu laused:

VACUUM FULL emp;
VACUUM FULL dept;

, siis tegelikult täidetakse

START TRANSACTION;
VACUUM FULL emp;
VACUUM FULL dept;
COMMIT;

Võimalikud lahendused:
  • käivitada kõik need laused psqlis (saab teha ka PgAdmin kaudu, valides Tools=>PSQL Tool),
    • psql neid lauseid omast peast transaktsiooni plokki ei pane,
  • käivitada need laused PgAdminis ükshaaval (siis neid ei panda transaktsiooni plokki),
    • selleks võib päringu aknas lause valida(selekteerida) ja siis vajutada käivitamise nupule või klahvile F5.

Hinda postitust:

Keskmine hinne : Pole veel hinnanguid!