PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Migrasi Rails:mencoba mengubah jenis kolom dari string menjadi integer

Saya mengutip manual tentang ALTER TABLE :

Klausa USING harus diberikan jika tidak ada implisit atau penugasan dari tipe lama ke tipe baru.

Yang Anda butuhkan adalah:

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

Atau lebih pendek dan lebih cepat (untuk tabel besar) dalam satu perintah:

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

Ini berfungsi dengan atau tanpa data selama semua entri dapat dikonversi ke integer .
Jika Anda telah menetapkan DEFAULT untuk kolom, Anda mungkin harus menghapus dan membuatnya ulang untuk tipe baru.

Berikut adalah artikel blog tentang cara melakukan ini dengan ActiveRecord.
Atau ikuti saran @mu di komentar. Dia tahu Ruby-nya. Saya hanya mahir dengan PostgreSQL di sini.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara merotasi log PgBouncer di Linux/Windows?

  2. Cara Meningkatkan PostgreSQL 11 ke PostgreSQL 12 dengan Zero Downtime

  3. Cara Menghitung Rata-Rata Pergerakan di PostgreSQL

  4. PG::InvalidParameterValue:ERROR:nilai tidak valid untuk parameter client_min_messages:panic

  5. Java Crosstab - kueri pernyataan yang disiapkan