Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengalih keluar Kunci Utama dengan Selamat daripada Jadual MySQL dengan Lajur Auto-Tambahan?

Bagaimana untuk Mengalih keluar Kunci Utama dengan Selamat daripada Jadual MySQL dengan Lajur Auto-Tambahan?

Linda Hamilton
Lepaskan: 2024-12-25 17:32:10
asal
605 orang telah melayarinya

How to Safely Remove Primary Keys from a MySQL Table with an Auto-Increment Column?

Mengendalikan Penyingkiran Kunci Utama MySQL dengan Kunci Kompaun

Apabila bekerja dengan pangkalan data, mengubah struktur jadual adalah penting untuk mengoptimumkan prestasi dan integriti data. Satu tugas biasa ialah mengalih keluar kunci utama. Walau bagaimanapun, proses ini boleh dihadapi dengan ralat, terutamanya apabila berurusan dengan kunci utama kompaun dan lajur kenaikan automatik.

Pertimbangkan perkara berikut:

mysql> describe user_customer_permission;
+------------------+---------+------+-----+---------+----------------+
| Field            | Type    | Null | Key | Default | Extra          |
+------------------+---------+------+-----+---------+----------------+
| id               | int(11) | NO   | PRI | NULL    | auto_increment |
| user_customer_id | int(11) | NO   | PRI | NULL    |                |
| permission_id    | int(11) | NO   | PRI | NULL    |                |
+------------------+---------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
Salin selepas log masuk

Di sini, jadual mempunyai primer komposit kunci termasuk id lajur, user_customer_id dan permission_id. Percubaan untuk mengalih keluar kunci utama daripada user_customer_id dan permission_id tanpa mengubah lajur id mengakibatkan ralat:

ERROR 1075 (42000): Incorrect table definition; there can be only one auto column and it must be defined as a key
Salin selepas log masuk

Untuk menangani isu ini, lajur id mesti diubah suai untuk mengalih keluar sifat kenaikan automatiknya sebelum menjatuhkan kunci utama:

ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
ALTER TABLE user_customer_permission DROP PRIMARY KEY;
Salin selepas log masuk

Adalah penting untuk ambil perhatian bahawa kunci utama komposit kini bergantung pada ketiga-tiga lajur untuk keunikan. Jika id tidak dijamin unik, ia boleh dipulihkan sebagai kunci utama dengan kenaikan automatik:

ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
Salin selepas log masuk

Dengan memahami kebergantungan antara kunci utama dan lajur autokenaikan, anda boleh mengalih keluar kunci primer dengan berkesan sambil mengekalkan integriti struktur pangkalan data anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengalih keluar Kunci Utama dengan Selamat daripada Jadual MySQL dengan Lajur Auto-Tambahan?. 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