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

Postgresql thay đổi loại cột từ int thành UUID

Bạn không thể chỉ chuyển int4 thành uuid; nó sẽ là một uuid không hợp lệ, chỉ có 32 bit được đặt, 96 bit cao là 0.

Nếu bạn muốn tạo các UUID mới để thay thế hoàn toàn các số nguyên và nếu không có tham chiếu khóa ngoại nào hiện có cho các số nguyên đó, bạn có thể sử dụng một kiểu truyền giả thực sự tạo ra các giá trị mới.

Không chạy cái này mà không có bản sao lưu dữ liệu của bạn. Nó vĩnh viễn loại bỏ các giá trị cũ trong colA .

ALTER TABLE tableA ALTER COLUMN colA SET DATA TYPE UUID USING (uuid_generate_v4());

Cách tiếp cận tốt hơn thường là thêm một cột uuid, sau đó sửa mọi tham chiếu khóa ngoại để trỏ đến nó và cuối cùng thả cột ban đầu.

Bạn cần cài đặt mô-đun UUID:

CREATE EXTENSION "uuid-ossp";

Các dấu ngoặc kép rất quan trọ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. Nhập tệp .sql trên windows vào postgresql

  2. Postgres có hỗ trợ các giao dịch lồng ghép hoặc tự trị không?

  3. Làm cách nào để lấy bình luận của cơ sở dữ liệu PostgreSQL?

  4. Cách nhập tệp CSV trong PostgreSQL

  5. Cách trả lại danh sách các cụm từ có sẵn trong PostgreSQL