Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Melaksanakan Kunci Utama Auto-Incrementing Dengan Betul dalam PostgreSQL?

Bagaimanakah Saya Melaksanakan Kunci Utama Auto-Incrementing Dengan Betul dalam PostgreSQL?

Susan Sarandon
Lepaskan: 2025-01-22 11:41:10
asal
637 orang telah melayarinya

How Do I Properly Implement Auto-Incrementing Primary Keys in PostgreSQL?

Penyelesaian masalah lajur autokenaikan PostgreSQL

Anda mungkin menghadapi ralat apabila cuba menggunakan AUTO_INCREMENT untuk menomborkan kunci utama secara automatik dalam PostgreSQL. Mari kita mendalami kemungkinan punca dan penyelesaiannya:

PostgreSQL 10 dan ke atas

Dalam PostgreSQL 10 dan ke atas, adalah disyorkan untuk menggunakan lajur IDENTITI SQL standard dan bukannya AUTO_INCREMENT.

Buat jadual dengan lajur IDENTITI

<code class="language-sql">CREATE TABLE staff (  
 staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY  
, staff text NOT NULL  
);</code>
Salin selepas log masuk

Tambah lajur IDENTITI pada jadual sedia ada

<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY;</code>
Salin selepas log masuk

Jadikan ini juga kunci utama:

<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY;</code>
Salin selepas log masuk

PostgreSQL 9.6 atau lebih rendah

Untuk 9.6 atau lebih rendah, gunakan jenis pseudo-data bersiri:

<code class="language-sql">CREATE TABLE staff (  
 staff_id serial PRIMARY KEY  
, staff text NOT NULL  
);</code>
Salin selepas log masuk

Nota Tambahan

Sila pastikan anda menggunakan pengecam yang sah (huruf kecil, tiada petikan) untuk mengelakkan isu yang mungkin berlaku.

Jika anda ingin menggantikan lajur bersiri dengan lajur IDENTITY, sila rujuk dokumen ini untuk mendapatkan panduan.

Anda boleh menggunakan OVERRIDING {SYSTEM|USER} VALUE untuk mengatasi nilai sistem atau input pengguna dalam arahan INSERT.

Atas ialah kandungan terperinci Bagaimanakah Saya Melaksanakan Kunci Utama Auto-Incrementing Dengan Betul dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan