sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man kör flera transaktioner samtidigt i PostgreSQL

Öppna mer än en psql session, en terminal per session.

Om du använder Windows kan du göra det genom att starta psql via Start-menyn flera gånger. På andra plattformar öppnar du ett par nya terminaler eller terminalflikar och startar psql i varje.

Jag gör rutinmässigt detta när jag undersöker problem med låsning och samtidighet, som används i svar som:

... förmodligen mer. Ett användbart knep när du vill ställa in ett tävlingsvillkor är att öppna en tredje psql session och BEGIN; LOCK TABLE the_table_to_race_on; . Kör sedan uttalanden i dina andra sessioner; de kommer att blockera låset. ROLLBACK transaktionen som håller bordslåset och de andra sessionerna kommer att tävla. Det är inte perfekt, eftersom det inte simulerar offset-start-tid samtidighet, men det är fortfarande till stor hjälp.

Andra alternativ beskrivs i det här senare svaret om ett liknande ämne.



  1. Hur gör jag uppföljare till Pro med PuPHPet?

  2. Installera PDO-drivrutiner för PostgreSQL på Mac (med Zend för eclipse)

  3. java.lang.ClassCastException:oracle.sql.BLOB kan inte castas till oracle.sql.BLOB

  4. Tomcat, Java &SQL Server 2008 R2:Kan inte skapa JDBC-drivrutin av klassen '' för anslutnings-URL 'null'