Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengalih keluar Kunci Utama Komposit dalam MySQL Semasa Menyimpan Lajur Auto-Tambahan?

Bagaimana untuk mengalih keluar Kunci Utama Komposit dalam MySQL Semasa Menyimpan Lajur Auto-Tambahan?

Susan Sarandon
Lepaskan: 2024-12-31 03:28:10
asal
418 orang telah melayarinya

How to Remove Composite Primary Keys in MySQL While Keeping an Auto-Increment Column?

Mengalih keluar Kunci Utama daripada Berbilang Lajur dalam MySQL

Soalan:

Bagaimana saya boleh mengalih keluar kunci utama daripada user_customer_id dan permission_id sambil mengekalkan kunci utama untuk id dalam jadual user_customer_permission, walaupun menghadapi ralat apabila menggunakan perintah "alter table user_customer_permission drop primary key"?

Penjelasan:

MySQL memerlukan lajur autoincrement menjadi sebahagian daripada indeks paling kiri. Dalam kes ini, lajur id ialah autoincrement, jadi mengalih keluar kunci utama daripada id akan melanggar keperluan ini.

Penyelesaian:

Untuk berjaya mengalih keluar kunci utama daripada user_customer_id dan id_izin, ikuti ini langkah:

  1. Alih keluar sifat autoincrement daripada lajur id:

    ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
    Salin selepas log masuk
  2. Lepaskan kunci utama:

    ALTER TABLE user_customer_permission DROP PRIMARY KEY;
    Salin selepas log masuk

Nota: Adalah penting untuk ambil perhatian bahawa jadual sebelum ini mempunyai KUNCI UTAMA komposit meliputi ketiga-tiga lajur (id, user_customer_id, permission_id). Untuk memastikan keunikan lajur id, anda boleh menjadikannya kunci utama sekali lagi dengan autoincrement:

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

Dengan mengikuti langkah ini, anda boleh berjaya mengalih keluar kunci utama daripada user_customer_id dan permission_id sambil mengekalkan kunci utama untuk id.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Kunci Utama Komposit dalam MySQL Semasa Menyimpan Lajur Auto-Tambahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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