PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Kolom tabel kenaikan otomatis

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat ekstensi postgres di dalam wadah?

  2. org.hibernate.internal.util.config.ConfigurationException:Tidak dapat menemukan sumber daya cfg.xml [/HibernateTest/src/hibernate.cfg.xml]

  3. uWSGI, Flask, sqlalchemy, dan postgres:Kesalahan SSL:dekripsi gagal atau catatan buruk mac

  4. Bagaimana cara menggunakan SQL for loop untuk memasukkan baris ke dalam database?

  5. Bagaimana cara menggunakan nama kolom dinamis dalam pernyataan UPDATE atau SELECT dalam suatu fungsi?