Anda mungkin menghadapi ralat apabila cuba menggunakan AUTO_INCREMENT untuk menomborkan kunci utama secara automatik dalam PostgreSQL. Mari kita mendalami kemungkinan punca dan penyelesaiannya:
Dalam PostgreSQL 10 dan ke atas, adalah disyorkan untuk menggunakan lajur IDENTITI SQL standard dan bukannya AUTO_INCREMENT.
<code class="language-sql">CREATE TABLE staff ( staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY , staff text NOT NULL );</code>
<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY;</code>
Jadikan ini juga kunci utama:
<code class="language-sql">ALTER TABLE staff ADD COLUMN staff_id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY;</code>
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>
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!