Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Percanggahan Urutan Kunci Utama PostgreSQL?

Bagaimana untuk Menyelesaikan Percanggahan Urutan Kunci Utama PostgreSQL?

Linda Hamilton
Linda Hamiltonasal
2025-01-23 11:56:09399semak imbas

How to Resolve PostgreSQL Primary Key Sequence Discrepancies?

Isu ketidakkonsistenan jujukan kunci utama PostgreSQL

Jujukan kunci utama PostgreSQL menyediakan pengecam unik untuk baris jadual. Ralat penduaan kunci utama boleh berlaku apabila urutan tidak segerak dengan operasi sisipan baris sebenar. Isu ini biasanya berlaku selepas operasi import/pemulihan data.

Untuk menyelesaikan isu ini, langkah berikut disyorkan:

  1. Semak nilai ID maksimum dalam jadual:

    <code class="language-sql"> SELECT MAX(id) FROM your_table;</code>
  2. Dapatkan nilai urutan seterusnya:

    <code class="language-sql"> SELECT nextval('your_table_id_seq');</code>
  3. Jika nilai urutan seterusnya kurang daripada nilai ID maksimum, laraskan jujukan kepada nilai ID terakhir digunakan:

    <code class="language-sql"> BEGIN;
     LOCK TABLE your_table IN EXCLUSIVE MODE;
     SELECT setval('your_table_id_seq', (SELECT GREATEST(MAX(your_id), nextval('your_table_id_seq')-1) FROM your_table));
     COMMIT;</code>

Proses ini memastikan bahawa jujukan kunci utama sepadan dengan data jadual sedia ada, dengan itu menyelesaikan ralat penduaan kunci utama.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Percanggahan Urutan Kunci Utama 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