Postgres 10 atau lebih baru
serial
kolom (lihat di bawah) tetap tidak berubah. Tetapi pertimbangkan sebuah IDENTITY
kolom. Postgres 10 mengimplementasikan fitur SQL standar ini.
Sintaks dasar dan info dalam manual untuk CREATE TABLE
.
Penjelasan rinci dalam entri blog ini dari penulis utamanya Peter Eisentraut.
Buat tabel dengan IDENTITY
kolom
CREATE TABLE staff (
staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY
, staff text NOT NULL
);
Tambahkan IDENTITY
kolom ke tabel yang ada
Tabel mungkin atau mungkin tidak diisi dengan baris.
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY;
Untuk juga menjadikannya PK secara bersamaan (tabel belum dapat memiliki PK):
ALTER TABLE staff ADD COLUMN staff_id int GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY;
Terkait:
- Bagaimana cara menambahkan kolom identitas PostgreSQL 10 ke tabel yang ada dengan baris?
Ganti serial
dengan IDENTITY
kolom
Lihat:
- Bagaimana cara mengubah ID tabel dari serial menjadi identitas?
Postgres 9.6 atau lebih lama
(Atau versi apa pun, sebenarnya.)
Gunakan serial
tipe data semu sebagai gantinya:
CREATE TABLE staff (
staff_id serial PRIMARY KEY,
, staff text NOT NULL
);
Itu membuat dan melampirkan objek urutan secara otomatis dan mengatur DEFAULT
ke nextval()
dari urutan. Itu melakukan semua yang Anda butuhkan.
Saya menggunakan pengidentifikasi huruf kecil dalam contoh saya. Jadikan hidup Anda dengan Postgres lebih mudah.