PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak wymienić stół w Postgresie?

Prostsze:

BEGIN;
DROP TABLE a;
ALTER TABLE a1 RENAME TO a;
COMMIT;

DROP TABLE uzyskuje ACCESS EXCLUSIVE i tak zablokuj na stole. Wyraźny LOCK komenda nie jest lepsza. A zmiana nazwy zmarłego to tylko strata czasu.

Możesz zablokować starą tabelę podczas przygotowywania nowy, aby zapobiec zapisywaniu pomiędzy. Następnie na wcześniejszym etapie procesu należy wprowadzić taką blokadę:

LOCK TABLE a IN SHARE MODE;

Co się dzieje z równoczesnymi transakcjami próbującymi uzyskać dostęp do tabeli? To nie takie proste, przeczytaj to:

Wyjaśnia, dlaczego mogłeś zobaczyć takie komunikaty o błędach:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cloud SQL Postgres Nie znaleziono odpowiedniego sterownika dla jdbc:postgres://google/

  2. kursor.execute(WSTAW WARTOŚCI im_entry.test (+entrym+) ('+p+');)

  3. Jaka jest żywotność przygotowanego oświadczenia po stronie serwera PostgreSQL

  4. Zwróć wiersze pasujące do elementów tablicy wejściowej w funkcji plpgsql

  5. Replikuj środowisko Pythona na innym komputerze