PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để thay thế một bảng trong Postgres?

Đơn giản hơn:

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

DROP TABLE có được ACCESS EXCLUSIVE khóa trên bàn nào. LOCK rõ ràng lệnh không tốt hơn. Và việc đổi tên một anh chàng đã chết chỉ là một sự lãng phí thời gian.

Bạn có thể muốn khóa bảng cũ trong khi chuẩn bị mới, để ngăn chặn việc ghi ở giữa. Sau đó, bạn sẽ phát hành một khóa như thế này sớm hơn trong quá trình:

LOCK TABLE a IN SHARE MODE;

Điều gì xảy ra với các giao dịch đồng thời cố gắng truy cập vào bảng? Nó không đơn giản như vậy, hãy đọc cái này:

Giải thích lý do tại sao bạn có thể thấy các thông báo lỗi như thế này:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. xác thực mật khẩu không thành công cho người dùng cây đậu đàn hồi ebroot

  2. Làm thế nào để ánh xạ loại cột PostgreSQL Interval trong Hibernate?

  3. Chuyển đổi CamelCase thành solid_case

  4. Làm cách nào để tôi (hoặc tôi có thể) CHỌN DISTINCT trên nhiều cột?

  5. Lỗi thả cơ sở dữ liệu postgres:pq:không thể thả cơ sở dữ liệu hiện đang mở