Jednodušší:
BEGIN;
DROP TABLE a;
ALTER TABLE a1 RENAME TO a;
COMMIT;
DROP TABLE
získává ACCESS EXCLUSIVE
stejně zamknout na stůl. Explicitní LOCK
velení není o nic lepší. A přejmenování mrtvého chlapa je jen ztráta času.
Při přípravě můžete starou tabulku uzamknout proti zápisu nové, aby se zabránilo zápisům mezi nimi. Pak byste dříve v procesu vydali takový zámek:
LOCK TABLE a IN SHARE MODE;
Co se stane se souběžnými transakcemi pokoušejícími se o přístup k tabulce? Není to tak jednoduché, přečtěte si toto:
Vysvětluje, proč se vám mohly zobrazit chybové zprávy, jako je tato: