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

Làm cách nào để thay đổi mã hóa cơ sở dữ liệu cho cơ sở dữ liệu PostgreSQL bằng sql hoặc phpPgAdmin?

Tóm lại, bạn không thể thực hiện việc này chỉ với phpPgAdmin hoặc SQL mà không có nguy cơ bị hỏng dữ liệu hiện có .Bạn phải xuất tất cả dữ liệu, tạo cơ sở dữ liệu với mã hóa chính xác và khôi phục dữ liệu đã xuất.

Đây là cách bạn nên tiếp tục:

  1. tạo kết xuất cơ sở dữ liệu :

    pg_dump your_database > your_database.sql

    điều này sẽ lưu cơ sở dữ liệu của bạn ở định dạng sql, ở dạng mã hóa mà bạn hiện có.

  2. xóa cơ sở dữ liệu (hoặc đổi tên nó):

    DROP DATABASE your_database

    nếu bạn có đủ bộ nhớ để làm điều đó, tôi khuyên bạn nên để lại cơ sở dữ liệu cũ cho đến khi bạn đảm bảo rằng mọi thứ đều ổn với cơ sở dữ liệu mới, hãy đổi tên nó:

    ALTER DATABASE your_database RENAME TO your_database_backup;

  3. tạo cơ sở dữ liệu với mã hóa mới :

    CREATE DATABASE your_database WITH ENCODING 'UNICODE' TEMPLATE=template0;

  4. nhập dữ liệu từ kết xuất được tạo trước đó :

    PGCLIENTENCODING=YOUR_OLD_ENCODING psql -f your_database.sql your_database

    bạn cần đặt mã hóa máy khách psql thành mã hóa mà bạn đã có trong cơ sở dữ liệu cũ.

Không thể thay đổi mã hóa một cách nhanh chóng vì nó sẽ yêu cầu viết lại hầu hết dữ liệu cơ sở dữ liệu nội bộ, gần như tương đương với việc tạo lại db theo cách tôi đã mô tả.

Có thể chỉ thay đổi thông tin nội bộ của postgres về cơ sở dữ liệu và mọi dữ liệu mới sau khi thay đổi này sẽ được lưu chính xác, tuy nhiên dữ liệu hiện có của bạn có thể bị hỏng .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể sử dụng bảng có tên người dùng trong chế độ ngủ đông postgresql

  2. Sử dụng Kubernetes để triển khai PostgreSQL

  3. Kiểm tra KHÔNG ĐẦY ĐỦ cho một bản ghi không trả về TRUE khi biến được đặt

  4. Cách giám sát hiệu suất PostgreSQL 12 với OmniDB - Phần 2

  5. Hàm MAX () trong PostgreSQL