Rumah >pangkalan data >tutorial mysql >Bagaimana Saya Menetapkan Semula Kaunter Kenaikan Automatik Postgres?

Bagaimana Saya Menetapkan Semula Kaunter Kenaikan Automatik Postgres?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-11 15:11:42520semak imbas

How Do I Reset a Postgres Auto-Increment Counter?

Menetapkan Semula Urutan Auto-Tambahan PostgreSQL

PostgreSQL tidak menggunakan AUTO_INCREMENT seperti MySQL. Sebaliknya, ia menggunakan jujukan untuk mengurus nilai kenaikan automatik. Untuk menetapkan semula nilai permulaan jujukan, anda perlu mengenal pasti nama jujukan yang dikaitkan dengan lajur kenaikan automatik jadual anda.

Percubaan untuk menggunakan ALTER TABLE product AUTO_INCREMENT = 1453 akan gagal kerana PostgreSQL tidak mengenali sintaks ini. Ralat "hubungan 'produk' tidak wujud" adalah perkara biasa.

Nama jujukan biasanya mengikut corak ${table_name}_${column_name}_seq. Untuk jadual bernama "produk" dengan lajur "Id", urutannya ialah "product_id_seq".

Arahan yang betul untuk menetapkan semula urutan untuk bermula pada 1453 ialah:

<code class="language-sql">ALTER SEQUENCE product_id_seq RESTART WITH 1453;</code>

Untuk mencari nama jujukan yang betul, gunakan perintah d dalam alat baris arahan psql. Contohnya, d product akan menunjukkan takrif jadual, termasuk nama jujukan yang digunakan oleh mana-mana lajur peningkatan automatik (melalui kekangan lalai). Sebagai alternatif, anda boleh menggunakan pertanyaan seperti SELECT pg_catalog.pg_get_serial_sequence('product', 'id'); untuk mendapatkan semula nama jujukan secara langsung.

Atas ialah kandungan terperinci Bagaimana Saya Menetapkan Semula Kaunter Kenaikan Automatik Postgres?. 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