Open meer dan één psql
sessie, één terminal per sessie.
Als u Windows gebruikt, kunt u dat doen door psql
. te starten meerdere keren via het menu Start. Open op andere platforms een aantal nieuwe terminals of terminaltabbladen en start psql
in elk.
Ik doe dit routinematig wanneer ik vergrendelings- en gelijktijdigheidsproblemen onderzoek, die worden gebruikt in antwoorden zoals:
... waarschijnlijk meer. Een handige truc als je een raceconditie wilt instellen, is door een derde psql
. te openen sessie en BEGIN; LOCK TABLE the_table_to_race_on;
. Voer vervolgens verklaringen uit in uw andere sessies; ze zullen het slot blokkeren. ROLLBACK
de transactie met de tafelvergrendeling en de andere sessies zullen racen. Het is niet perfect, omdat het geen gelijktijdigheid van offset-start-time simuleert, maar het is nog steeds erg nuttig.
Andere alternatieven worden beschreven in dit latere antwoord over een soortgelijk onderwerp.