PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como executar várias transações simultaneamente no PostgreSQL


Abra mais de um psql sessão, um terminal por sessão.

Se você estiver no Windows, poderá fazer isso iniciando o psql através do menu Iniciar várias vezes. Em outras plataformas, abra alguns novos terminais ou guias de terminal e inicie o psql em cada.

Eu faço isso rotineiramente quando estou examinando problemas de bloqueio e simultaneidade, usados ​​em respostas como:

... provavelmente mais. Um truque útil quando você deseja configurar uma condição de corrida é abrir um terceiro psql sessão e BEGIN; LOCK TABLE the_table_to_race_on; . Em seguida, execute instruções em suas outras sessões; eles vão bloquear na fechadura. ROLLBACK a transação segurando o bloqueio da tabela e as outras sessões correrão. Não é perfeito, pois não simula a simultaneidade do tempo de início do deslocamento, mas ainda é muito útil.

Outras alternativas são descritas em esta resposta posterior em um tópico semelhante.