Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah saya boleh menomborkan semula indeks utama MySQL dengan nilai bukan urutan dalam tertib menaik?

Bagaimanakah saya boleh menomborkan semula indeks utama MySQL dengan nilai bukan urutan dalam tertib menaik?

Patricia Arquette
Patricia Arquetteasal
2024-10-25 11:26:30708semak imbas

How can I renumber a MySQL primary index with non-sequential values in ascending order?

Menomborkan semula Indeks Utama untuk Data Tertib

Soalan:

Anda mempunyai jadual MySQL dengan indeks utama yang nilainya tidak dinomborkan secara berurutan. Bagaimanakah anda boleh menomborkannya semula mengikut urutan (1, 2, 3, ...)?

Jawapan:

Sementara kaedah lain tersedia, berikut ialah pendekatan alternatif yang tidak memerlukan membuat jadual sementara.

Penyelesaian:

Laksanakan pernyataan SQL berikut:

<code class="sql">SET @i=0;
UPDATE table_name SET column_name=(@i:=@i+1);</code>

Penjelasan:

  • Baris pertama memulakan pembolehubah sesi @i kepada 0.
  • Barisan kedua melakukan pertanyaan KEMASKINI pada jadual bernama table_name.
  • Dalam KEMASKINI pertanyaan, klausa SET memberikan nilai baharu kepada nama_lajur indeks utama.
  • Nilai baharu dikira dengan menambah pembolehubah sesi @i sebanyak 1.
  • Semasa pertanyaan dijalankan, @ i pembolehubah terus meningkat, memastikan bahawa nilai indeks utama dinomborkan semula secara berurutan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menomborkan semula indeks utama MySQL dengan nilai bukan urutan dalam tertib menaik?. 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