Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Menukar ID Jadual Sedia Ada secara Retroaktif kepada Auto-Increment dalam MySQL?

Bagaimana untuk Menukar ID Jadual Sedia Ada secara Retroaktif kepada Auto-Increment dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-26 14:38:31929semak imbas

How to Retroactively Convert Existing Table IDs to Auto-Increment in MySQL?

Menukar ID Jadual Sedia Ada Secara Retroaktif kepada Peningkatan Auto dalam MySQL

Situasi pangkalan data tertentu timbul apabila ID yang dijana secara manual dilaksanakan dalam jadual tanpa auto -ciri kenaikan. Dalam kes sedemikian, adalah wajar untuk meningkatkan ID tersebut kepada kenaikan automatik untuk meningkatkan kecekapan pengurusan data. Artikel ini menyelidiki proses penambahan secara retrospektif autokenaikan pada ID kunci utama.

Penyelesaian: Mengubah Suai Definisi Lajur

Untuk mengubah kunci utama menjadi autokenaikan medan, MySQL menyediakan arahan ALTER TABLE dengan pilihan MODIFY COLUMN. Pertimbangkan jadual contoh ini:

<code class="sql">CREATE TABLE foo (
  id INT NOT NULL,
  PRIMARY KEY (id)
);</code>

Untuk menjadikan lajur id meningkat secara automatik, gunakan arahan berikut:

<code class="sql">ALTER TABLE foo MODIFY COLUMN id INT NOT NULL AUTO_INCREMENT;</code>

Pengesahan dan Ujian

Selepas melaksanakan pernyataan pengubahan, sahkan perubahan:

<code class="sql">SHOW CREATE TABLE foo;</code>

Output harus menunjukkan bahawa lajur id telah diubah suai kepada AUTO_INCREMENT.

Untuk menguji kefungsian, masukkan rekod baharu tanpa menyatakan nilai untuk lajur id:

<code class="sql">INSERT INTO foo () VALUES ();</code>

Baris yang disisipkan harus menerima ID unik dan bertambah secara automatik.

Mengatasi Kod Ralat 150

Jika anda menemui kod ralat 150 (HY000) semasa proses pengubahsuaian, ini mungkin menunjukkan konflik dengan kekangan kunci asing. Untuk menyelesaikan isu ini, rujuk sumber berikut untuk menyelesaikan masalah:

  • [Stack Overflow post on MySQL error 1025 (HY000)](https://stackoverflow.com/questions/16403341/what-does -mysql-error-1025-hy000-error-on-rename-of-foo-errorno-150-mean)
  • [Nota Kesederhanaan tentang ralat MySQL 150 (HY000)](https://www.simplicityde .org/notes/archives/2008/03/mysql_errno_150.html)

Atas ialah kandungan terperinci Bagaimana untuk Menukar ID Jadual Sedia Ada secara Retroaktif kepada Auto-Increment dalam MySQL?. 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