Eenvoudiger:
BEGIN;
DROP TABLE a;
ALTER TABLE a1 RENAME TO a;
COMMIT;
DROP TABLE
verwerft een ACCESS EXCLUSIVE
slot op de tafel toch. Een expliciete LOCK
bevel is niet beter. En het hernoemen van een dode is gewoon tijdverspilling.
Misschien wilt u de oude tabel tijdens het voorbereiden op slot zetten de nieuwe, om tussentijds schrijven te voorkomen. Dan zou je eerder in het proces een slot als dit uitgeven:
LOCK TABLE a IN SHARE MODE;
Wat gebeurt er met gelijktijdige transacties die toegang proberen te krijgen tot de tabel? Het is niet zo eenvoudig, lees dit:
Legt uit waarom u mogelijk de volgende foutmeldingen hebt gezien: