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) ;