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.