serial adalah semu tipe data, bukan tipe data yang sebenarnya. Ini adalah integer di bawahnya dengan beberapa perintah DDL tambahan yang dijalankan secara otomatis:
- Buat urutan (dengan nama yang cocok secara default).
- Setel kolom
NOT NULLdan default untuk menggambar dari urutan itu. - Jadikan kolom "milik" urutannya.
Detail:
- Mengganti nama tabel dengan aman dan rapi yang menggunakan kolom kunci utama serial di Postgres?
Sebuah bigserial adalah sama, dibangun di sekitar bigint kolom. Anda ingin bigint , tapi Anda sudah mencapainya. Untuk mengubah serial yang ada kolom menjadi bigserial (atau smallserial ), yang perlu Anda lakukan adalah ALTER tipe data kolom. Urutan umumnya didasarkan pada bigint , jadi urutan yang sama dapat digunakan untuk integer ketik.
Untuk "mengubah" sebuah bigint menjadi bigserial atau integer menjadi serial , Anda hanya perlu melakukan sisanya dengan tangan:
- Membuat urutan PostgreSQL ke bidang (yang bukan ID catatan)
Tipe data sebenarnya masih integer / bigint . Beberapa klien seperti pgAdmin akan menampilkan tipe data serial dalam CREATE TABLE yang direkayasa terbalik skrip, jika semua kriteria untuk serial terpenuhi.