PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment exécuter plusieurs transactions simultanément dans PostgreSQL

Ouvrez plus d'un psql session, un terminal par session.

Si vous êtes sous Windows, vous pouvez le faire en lançant psql via le menu Démarrer plusieurs fois. Sur d'autres plates-formes, ouvrez quelques nouveaux terminaux ou onglets de terminal et démarrez psql dans chacun.

Je le fais régulièrement lorsque j'examine des problèmes de verrouillage et de concurrence, utilisés dans des réponses telles que :

... probablement plus. Une astuce utile lorsque vous souhaitez configurer une condition de concurrence consiste à ouvrir un troisième psql session et BEGIN; LOCK TABLE the_table_to_race_on; . Exécutez ensuite des instructions dans vos autres sessions ; ils bloqueront sur la serrure. ROLLBACK la transaction détenant le verrou de table et les autres sessions s'emballent. Ce n'est pas parfait, car il ne simule pas la simultanéité décalage-heure de début, mais c'est toujours très utile.

D'autres alternatives sont décrites dans cette réponse ultérieure sur un sujet similaire.