PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come eseguire più transazioni contemporaneamente in PostgreSQL

Apri più di un psql sessione, un terminale per sessione.

Se sei su Windows puoi farlo avviando psql tramite il menu Start più volte. Su altre piattaforme, apri un paio di nuovi terminali o schede terminali e avvia psql in ciascuno.

Lo faccio regolarmente quando esamino i problemi di blocco e concorrenza, usati in risposte come:

... probabilmente di più. Un trucco utile quando vuoi impostare una race condition è aprire un terzo psql sessione e BEGIN; LOCK TABLE the_table_to_race_on; . Quindi esegui le istruzioni nelle altre sessioni; bloccheranno la serratura. ROLLBACK la transazione che tiene il blocco del tavolo e le altre sessioni gareggeranno. Non è perfetto, dal momento che non simula la concorrenza dell'ora di inizio dell'offset, ma è comunque molto utile.

Altre alternative sono descritte in questa risposta successiva su un argomento simile.