create table test(id varchar );
insert into test values('1');
insert into test values('11');
insert into test values('12');
select * from test
--Result--
id
character varying
--------------------------
1
11
12
Anda dapat melihat dari tabel di atas bahwa saya telah menggunakan tipe data – character varying
untuk id
kolom. Tapi itu adalah kesalahan karena saya selalu memberikan integers
sebagai id
. Jadi gunakan varchar
di sini adalah praktik yang buruk. Jadi mari kita coba ubah jenis kolom menjadi integer
.
ALTER TABLE test ALTER COLUMN id TYPE integer;
Tapi itu kembali:
Artinya kita tidak bisa begitu saja mengubah tipe data karena data sudah ada di kolom. Karena data bertipe character varying
Postgres tidak dapat mengharapkannya sebagai bilangan bulat meskipun kami hanya memasukkan bilangan bulat. Jadi sekarang, seperti yang disarankan Postgres, kita dapat menggunakan USING
ekspresi untuk memasukkan data kita ke dalam bilangan bulat.
ALTER TABLE test ALTER COLUMN id TYPE integer USING (id::integer);
Berhasil.
Jadi, Anda harus menggunakan
alter table a.attend alter column terminal TYPE INTEGER USING (terminal::integer) ;