sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo ejecutar varias transacciones al mismo tiempo en PostgreSQL

Abra más de un psql sesión, un terminal por sesión.

Si está en Windows, puede hacerlo iniciando psql a través del menú Inicio varias veces. En otras plataformas, abra un par de nuevas terminales o pestañas de terminales e inicie psql en cada uno.

Rutinariamente hago esto cuando estoy examinando problemas de bloqueo y concurrencia, usados ​​en respuestas como:

... probablemente más. Un truco útil cuando desea configurar una condición de carrera es abrir un tercer psql sesión y BEGIN; LOCK TABLE the_table_to_race_on; . Luego ejecute declaraciones en sus otras sesiones; bloquearán la cerradura. ROLLBACK la transacción que mantiene el bloqueo de la mesa y las otras sesiones correrán. No es perfecto, ya que no simula la concurrencia de tiempo de inicio compensado, pero sigue siendo muy útil.

Otras alternativas se describen en esta respuesta posterior sobre un tema similar.