Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menetapkan Semula Kekunci Utama Auto-Incrementing dalam SQLite?

Bagaimana untuk Menetapkan Semula Kekunci Utama Auto-Incrementing dalam SQLite?

Linda Hamilton
Linda Hamiltonasal
2025-01-15 14:21:48913semak imbas

How to Reset Auto-Incrementing Primary Keys in SQLite?

Kaedah tetapan semula kunci utama penambahan automatik SQLite

Menetapkan semula nilai kunci primer yang meningkat secara automatik adalah masalah biasa apabila bekerja dengan pangkalan data SQLite. Artikel ini akan meneroka perkara ini dan memberikan penyelesaian yang berkesan.

Senario dan soalan

Pengguna cuba menetapkan semula medan kenaikan automatik untuk berbilang jadual dalam pangkalan data SQLite. Walau bagaimanapun, menggunakan perintah DELETE FROM untuk memadam semua data tidak menetapkan semula medan kepada 0. Sebaliknya, kenaikan automatik terus meningkat daripada nilai terakhir selepas data dipadamkan.

Penjelasan terperinci

Masalah ini timbul kerana SQLite menggunakan jadual berasingan bernama SQLITE_SEQUENCE untuk menjejaki nilai ROWID tertinggi dalam setiap jadual. Apabila rekod baharu dimasukkan, algoritma AUTOINCREMENT menyemak jadual SQLITE_SEQUENCE untuk menentukan nilai kunci utama yang tersedia seterusnya.

Memadam data daripada jadual utama hanya akan memadamkan baris yang berkaitan. SQLITE_SEQUENCE Jadual kekal tidak berubah, menyebabkan kaunter kenaikan automatik terus meningkat daripada nilai terakhirnya.

Penyelesaian

Untuk menetapkan semula medan kunci utama kepada nilai yang dikehendaki, laksanakan dua pernyataan berikut:

<code class="language-sql">DELETE FROM your_table;
DELETE FROM sqlite_sequence WHERE name='your_table';</code>

Pernyataan pertama memadam semua data dalam jadual utama. Pernyataan kedua memadamkan masukan untuk jadual tersebut dalam jadual SQLITE_SEQUENCE, dengan berkesan menetapkan semula nilai ROWID tertinggi kepada 0.

Nota lain

  • Pengubahsuaian jadual SQLITE_SEQUENCE hendaklah dilakukan dengan berhati-hati.
  • Pastikan anda membuat sandaran pangkalan data anda sebelum membuat sebarang perubahan.
  • Penyelesaian yang disediakan berfungsi untuk kedua-dua jadual yang dibuat secara manual dan jadual yang dibuat menggunakan alatan seperti SQLite Maestro.

Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Semula Kekunci Utama Auto-Incrementing dalam SQLite?. 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