Öffnen Sie mehr als ein psql
Sitzung, ein Terminal pro Sitzung.
Wenn Sie Windows verwenden, können Sie dies tun, indem Sie psql
starten mehrmals über das Startmenü. Öffnen Sie auf anderen Plattformen ein paar neue Terminals oder Terminal-Tabs und starten Sie psql
in jedem.
Ich mache das routinemäßig, wenn ich Probleme mit Sperren und Parallelität untersuche, die in Antworten wie verwendet werden:
... wahrscheinlich mehr. Ein nützlicher Trick, wenn Sie eine Racebedingung einrichten möchten, besteht darin, ein drittes psql
zu öffnen Sitzung und BEGIN; LOCK TABLE the_table_to_race_on;
. Führen Sie dann Anweisungen in Ihren anderen Sitzungen aus; Sie werden auf dem Schloss blockieren. ROLLBACK
Die Transaktion, die die Tabellensperre hält, und die anderen Sitzungen laufen um die Wette. Es ist nicht perfekt, da es keine Offset-Startzeit-Parallelität simuliert, aber es ist immer noch sehr hilfreich.
Andere Alternativen werden in dieser späteren Antwort beschrieben zu einem ähnlichen Thema.