Postgresql biedt geen ondersteuning voor het retourneren van meerdere resultatensets vanuit één opdracht. Als u deze invoer doorgeeft aan psql:
BEGIN;
SELECT ...;
END;
het zal dit aan de clientzijde opsplitsen en feitelijk drie instructies uitvoeren, waarvan alleen de tweede een resultatenset retourneert.
"BEGIN" en "END" zijn commando's op SQL-niveau om een transactie te starten/beëindigen. (Misschien is er een protocol op een lager niveau om dit te doen, maar ik kan het me niet herinneren). U wilt ze waarschijnlijk niet rechtstreeks uitgeven, maar uw chauffeur (psycopg2) dit laten afhandelen. Bijvoorbeeld, met Perl's DBI specificeer ik AutoCommit=>0 bij het verbinden en het geeft impliciet een "BEGIN" voor mijn eerste commando; en dan "END" (of "COMMIT" enz.) wanneer ik expliciet $dbh->commit aanroep; Ik denk dat de DB-API van Python ongeveer zo werkt, aangezien andere systemen zoals JDBC dat ook doen...