sql >> Databáze >  >> RDS >> PostgreSQL

Jak spouštět více transakcí současně v PostgreSQL

Otevřete více než jeden psql relaci, jeden terminál na relaci.

Pokud používáte Windows, můžete to provést spuštěním psql přes nabídku Start několikrát. Na jiných platformách otevřete několik nových terminálů nebo záložek terminálů a spusťte psql v každém.

Běžně to dělám, když zkoumám problémy se zamykáním a souběžností, které se používají v odpovědích jako:

... asi víc. Užitečným trikem, když chcete nastavit podmínku sporu, je otevřít třetí psql session a BEGIN; LOCK TABLE the_table_to_race_on; . Poté spusťte příkazy v ostatních relacích; zablokují zámek. ROLLBACK transakce držící zámek stolu a ostatní relace budou závodit. Není to dokonalé, protože nesimuluje souběžnost offset-start-time, ale stále je to velmi užitečné.

Další alternativy jsou uvedeny v této pozdější odpovědi na podobné téma.



  1. Máte problémy s používáním MS Access jako front-endu k back-endu databáze MySQL?

  2. Jak přidat komentáře do tabulky v Oracle SQL Developer?

  3. Přístup k náhodným řádkům z databáze bez opakování

  4. Nelze se připojit k serveru MySQL na '127.0.0.1' (10061) (2003)