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

Rails Migrations:đã cố gắng thay đổi loại cột từ chuỗi thành số nguyên

Tôi trích dẫn sách hướng dẫn về ALTER TABLE :

Điều khoản SỬ DỤNG phải được cung cấp nếu không có ẩn ý hoặc chuyển nhượng từ loại cũ sang loại mới.

Những gì bạn cần là:

ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int;
ALTER TABLE listings ALTER latitude  TYPE integer USING latitude::int;

Hoặc ngắn hơn và nhanh hơn (đối với các bảng lớn) trong một lệnh:

ALTER TABLE listings ALTER longitude TYPE integer USING longitude::int
                    ,ALTER latitude  TYPE integer USING latitude::int;

Điều này hoạt động có hoặc không có dữ liệu miễn là tất cả các mục nhập đều có thể chuyển đổi thành integer .
Nếu bạn đã xác định một DEFAULT đối với cột, bạn có thể phải bỏ và tạo lại cột đó cho loại mới.

Đây là bài viết trên blog về cách thực hiện việc này với ActiveRecord.
Hoặc xem lời khuyên của @ mu trong nhận xét. Anh ấy biết Ruby của mình. Tôi chỉ giỏi với PostgreSQL ở đâ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. Có PostgreSQL tương đương với SQL Server profiler không?

  2. Làm thế nào để ép kiểu mảng json sang mảng văn bản?

  3. Không có toán tử nào phù hợp với (các) loại đối số và tên đã cho. Bạn có thể cần thêm phôi kiểu rõ ràng. - Netbeans, Postgresql 8.4 và Glassfish

  4. PostgreSQL - Đổi tên cơ sở dữ liệu

  5. CURRENT_TIMESTAMP tính bằng mili giây