Rumah >pangkalan data >tutorial mysql >Bolehkah saya Mengubah Suai Kunci Utama dalam MySQL Sambil Mengekalkan Medan Peningkatan Automatik Berfungsi?

Bolehkah saya Mengubah Suai Kunci Utama dalam MySQL Sambil Mengekalkan Medan Peningkatan Automatik Berfungsi?

Barbara Streisand
Barbara Streisandasal
2024-10-29 19:18:02607semak imbas

Can I Modify the Primary Key in MySQL While Keeping an Auto-Incrementing Field Functional?

Pengubahsuaian Kunci Utama MySQL: Mengimbangi Peningkatan Auto dan Kecekapan Pertanyaan

Apabila mentakrifkan jadual dalam MySQL, cabaran biasa timbul apabila cuba menggabungkan medan kenaikan automatik dengan satu lagi kunci sebagai kunci utama. Artikel ini menangani isu tentang cara untuk mencapai ini sambil mengekalkan prestasi optimum dan kebolehcapaian pengecam.

Contoh jadual yang disediakan menampilkan medan id penambahan automatik dan medan memberid unik yang digunakan untuk mengenal pasti ahli dalam pertanyaan. Timbul persoalan tentang bagaimana untuk menetapkan memberid sebagai kunci utama sambil mengekalkan kefungsian auto-increment medan id.

Ralat "1075 - Takrif jadual yang salah; hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci" menunjukkan bahawa MySQL memerlukan lajur peningkatan automatik untuk ditakrifkan sebagai kunci. Untuk menyelesaikan masalah ini, indeks (kunci) mesti ditambahkan pada medan id.

Takrif jadual yang diubah suai berikut menangani isu:

CREATE TABLE members (
  id int(11)  UNSIGNED NOT NULL AUTO_INCREMENT,
  memberid VARCHAR( 30 ) NOT NULL ,
  `time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,
  firstname VARCHAR( 50 ) NULL ,
  lastname VARCHAR( 50 ) NULL ,
  PRIMARY KEY (memberid),
  KEY (id)                          --- or:    UNIQUE KEY (id)
) ENGINE = MYISAM;

Dengan mencipta indeks pada medan id, MySQL akan dapat mengesan rekod dengan cekap menggunakan sama ada medan id atau memberid. Penyelesaian ini memastikan bahawa prestasi pertanyaan menggunakan memberid tidak terjejas sambil mengekalkan faedah medan id peningkatan automatik.

Oleh itu, adalah mungkin untuk mengkonfigurasi jadual pangkalan data dengan kunci utama yang bukan auto -medan kenaikan sementara masih mengekalkan kefungsian dan kecekapan lajur kenaikan automatik. Fleksibiliti dalam reka bentuk jadual ini membolehkan prestasi optimum dan penggunaan pengecam mesra pengguna dalam pertanyaan.

Atas ialah kandungan terperinci Bolehkah saya Mengubah Suai Kunci Utama dalam MySQL Sambil Mengekalkan Medan Peningkatan Automatik Berfungsi?. 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