Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggugurkan Kunci Utama dalam MySQL Apabila Lajur Autoincrement Wujud?

Bagaimana untuk Menggugurkan Kunci Utama dalam MySQL Apabila Lajur Autoincrement Wujud?

Patricia Arquette
Patricia Arquetteasal
2024-12-25 13:36:13897semak imbas

How to Drop a Primary Key in MySQL When an Autoincrement Column Exists?

Menggugurkan Kunci Utama dalam MySQL

Pernyataan Masalah:

Seorang pengguna menghadapi ralat apabila cuba mengalih keluar kunci utama daripada dua lajur dalam jadual MySQL, user_customer_permission. Apabila mengeluarkan arahan "ubah jadual pengguna_customer_permission jatuhkan kunci utama;", mereka menerima ralat "Takrif jadual tidak betul; hanya boleh ada satu lajur automatik dan ia mesti ditakrifkan sebagai kunci."

Jawapan :

MySQL memerlukan lajur autoincrement (seperti lajur id dalam kes ini) menjadi sebahagian daripada indeks. Untuk menyelesaikan isu ini, pengguna mesti mengalih keluar sifat autoincrement terlebih dahulu daripada lajur id sebelum melepaskan kunci utama.

Langkah berikut menggariskan penyelesaian:

  1. Alih keluar Autoincrement Harta:

    ALTER TABLE user_customer_permission MODIFY id INT NOT NULL;
  2. Lepaskan Kunci Utama:

    ALTER TABLE user_customer_permission DROP PRIMARY KEY;

Pertimbangan Tambahan :

Memandangkan pengguna telah menentukan komposit kunci utama yang melibatkan ketiga-tiga lajur, id tidak dijamin unik. Walau bagaimanapun, jika ia unik, arahan berikut boleh digunakan untuk mengembalikan id sebagai kunci utama dan lajur autoincrement:

ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;

Atas ialah kandungan terperinci Bagaimana untuk Menggugurkan Kunci Utama dalam MySQL Apabila Lajur Autoincrement Wujud?. 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