Rumah > pangkalan data > tutorial mysql > Mengapa AUTO_INCREMENT Tidak Berfungsi dalam PostgreSQL dan Bagaimana Saya Boleh Mencapai ID Auto-Incrementing?

Mengapa AUTO_INCREMENT Tidak Berfungsi dalam PostgreSQL dan Bagaimana Saya Boleh Mencapai ID Auto-Incrementing?

DDD
Lepaskan: 2025-01-22 11:37:10
asal
422 orang telah melayarinya

Why Doesn't AUTO_INCREMENT Work in PostgreSQL, and How Can I Achieve Auto-Incrementing IDs?

Menyelesaikan masalah AUTO_INCREMENT PostgreSQL

PostgreSQL tidak menyokong kata kunci AUTO_INCREMENT yang digunakan dalam sistem pangkalan data lain seperti MySQL. Percubaan untuk menggunakannya akan mengakibatkan ralat sintaks. Panduan ini menerangkan cara untuk mencapai kunci utama penambahan automatik dalam PostgreSQL.

PostgreSQL 10 dan Kemudian: Menggunakan Lajur IDENTITI

Pendekatan yang disyorkan untuk PostgreSQL 10 dan versi yang lebih baharu ialah menggunakan lajur IDENTITY. Tidak seperti SERIAL lajur, IDENTITY lajur menawarkan lebih fleksibiliti dengan pilihan GENERATED BY DEFAULT dan GENERATED ALWAYS.

Membuat Jadual dengan Lajur IDENTITI

CREATE TABLE staff (
  staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  staff    text NOT NULL
);
Salin selepas log masuk

Menambahkan Lajur IDENTITI pada Jadual Sedia Ada

ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY;
Salin selepas log masuk

PostgreSQL 9.6 dan Lebih Lama: Menggunakan SERIAL

Untuk versi PostgreSQL yang lebih lama (9.6 dan ke bawah), SERIAL pseudo-type menyediakan fungsi auto-increment yang serupa.

CREATE TABLE staff (
  staff_id serial PRIMARY KEY,
  staff    text NOT NULL
);
Salin selepas log masuk

SERIAL mencipta dan mengurus jujukan yang berkaitan secara automatik, memastikan nilai yang unik dan bertambah untuk lajur staff_id.

Mengawal Nilai Disisipkan

Untuk kawalan terperinci ke atas nilai yang dimasukkan, malah mengatasi lalai sistem atau nilai yang disediakan pengguna, gunakan OVERRIDING {SYSTEM|USER} VALUE dalam pernyataan INSERT anda. Ini menawarkan kawalan lanjutan melangkaui penambahan automatik yang mudah.

Atas ialah kandungan terperinci Mengapa AUTO_INCREMENT Tidak Berfungsi dalam PostgreSQL dan Bagaimana Saya Boleh Mencapai ID Auto-Incrementing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan