Also irgendwie bin ich sehr verwirrt...Wir sollen ein psql Skript "korrigieren" sodass die Nebenläufigkeit hier keine Probleme macht. Dazu wurde das "Schlüsselwort" SET TRANSACTION von Postgres genannt, jedoch verstehe ich nicht ganz wie der Kram funktioniert...Ich habe das so verstanden, dass man für jeden Thread eine Transaction erstellt und so gleichzeitigen Zugriff auf die selbe Tabelle verhindert.
Jedoch vermute ich, dass dies falsch ist, denn mein Skript funktioniert nicht xD
Hier ist der Link zu den Docs von Set Transactions
Jedoch vermute ich, dass dies falsch ist, denn mein Skript funktioniert nicht xD
Bash:
PSQL='psql -U aphbr -h localhost -p 5435'
$PSQL -c 'SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;'
$PSQL -c 'DROP TABLE IF EXISTS t;'
$PSQL -c 'CREATE TABLE t (s NUMERIC);'
$PSQL -c 'INSERT INTO t VALUES (0);'
for i in ‘seq 1 100‘
do
$PSQL -c 'BEGIN TRANSACTION ISOLATION LEVEL REPEATABLE READ; INSERT INTO t VALUES (1+(SELECT MAX(s) FROM t)); COMMIT TRANSACTION;' &
done
Hier ist der Link zu den Docs von Set Transactions