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

Mary-Kate Olsen
Lepaskan: 2024-10-26 14:38:31
asal
928 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Pengesahan dan Ujian

Selepas melaksanakan pernyataan pengubahan, sahkan perubahan:

<code class="sql">SHOW CREATE TABLE foo;</code>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!