Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Lajur Auto-Incrementing dalam PostgreSQL?

Bagaimana untuk Melaksanakan Lajur Auto-Incrementing dalam PostgreSQL?

Patricia Arquette
Patricia Arquetteasal
2025-01-22 11:27:081038semak imbas

How to Implement Auto-Incrementing Columns in PostgreSQL?

Penjelasan terperinci tentang cara melaksanakan lajur peningkatan automatik PostgreSQL

Apabila membuat jadual dalam PostgreSQL, anda mungkin menghadapi ralat semasa cuba menggunakan pilihan AUTO_INCREMENT untuk lajur kunci utama. Artikel ini menyelidiki isu ini dan menyediakan penyelesaian komprehensif untuk lajur jadual kenaikan automatik.

AUTO_INCREMENT ralat sintaks

Mesej ralat yang ditemui menunjukkan ralat sintaks yang berkaitan dengan kata kunci AUTO_INCREMENT. PostgreSQL tidak menyokong kata kunci AUTO_INCREMENT. Sebaliknya, ia menggunakan teknik yang berbeza untuk menjana nilai kunci primer secara automatik.

PostgreSQL 10 dan lebih baru: lajur IDENTITI

Untuk PostgreSQL 10 dan yang lebih baru, kaedah pilihan kunci utama penambahan automatik ialah lajur IDENTITI. Lajur IDENTITY ialah jenis lajur khas yang menjana nilai unik untuk setiap baris secara automatik.

Untuk membuat 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>
Klausa

GENERATED ALWAYS memastikan bahawa nilai lajur dijana secara automatik walaupun jika nilai disediakan secara eksplisit dalam pernyataan INSERT.

PostgreSQL 9.6 dan lebih rendah: lajur bersiri

Untuk PostgreSQL 9.6 dan lebih rendah, jenis data pseudo bersiri boleh digunakan untuk menambah kunci utama secara automatik. Lajur bersiri mencipta objek jujukan di belakang tabir dan secara automatik menetapkan nilai lalai lajur kepada nilai seterusnya dalam jujukan.

Untuk mencipta jadual dengan lajur bersiri:

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

Timpa nilai lalai

Kedua-dua lajur IDENTITI dan bersiri menjana nilai secara automatik, tetapi anda boleh mengatasi nilai ini menggunakan sintaks OVERRIDING SYSTEM|NILAI PENGGUNA dalam pernyataan INSERT.

Nota Tambahan

  • Adalah disyorkan untuk menggunakan lajur IDENTITY dan bukannya lajur bersiri dalam PostgreSQL 10 dan ke atas.
  • Dalam PostgreSQL, pilih pengecam yang sah, huruf kecil, tidak disebut untuk memudahkan pengurusan pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Lajur Auto-Incrementing dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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