Saya menggunakan kueri berikut:
ALTER TABLE presales ALTER COLUMN code TYPE numeric(10,0);
untuk mengubah tipe data kolom dari character(20)
menjadi numeric(10,0)
tetapi saya mendapatkan kesalahan:
kolom "kode" tidak dapat ditransmisikan untuk mengetik numerik
postgresql
pengguna728630
sumber
sumber
TYPE varchar(255) USING (substring(formertextcolumn from 1 for 255))
Jika
VARCHAR
kolom Anda berisi string kosong (yang tidak sama denganNULL
PostgreSQL yang mungkin Anda ingat), Anda harus menggunakan sesuatu di baris berikut untuk menyetel default:ALTER TABLE presales ALTER COLUMN code TYPE NUMERIC(10,0) USING COALESCE(NULLIF(code, '')::NUMERIC, 0);
(ditemukan dengan bantuan jawaban ini )
sumber
Langkah 1: Tambahkan kolom baru dengan integer atau numerik sesuai kebutuhan Anda
Langkah 2: Isi data dari kolom varchar ke kolom numerik
Langkah 3: Jatuhkan kolom varchar
Langkah 4: Ubah nama kolom numerik baru sesuai kolom varchar lama
sumber