sql >> Database >  >> RDS >> PostgreSQL

SQL haalt gegevens uit BEGIN; ...; EINDE; blok in python

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...



  1. Proberen te begrijpen Kan de FULLTEXT-index niet vinden die overeenkomt met de kolomlijstfout

  2. jjjj-mm-dd omzetten in mm/dd/jjjj

  3. Hoe kom je er met behulp van sql/plsql achter welke tekenset een tekst gebruikt?

  4. Tijdslimiet instellen php