Heim > Datenbank > MySQL-Tutorial > Wie entferne ich Primärschlüssel aus Spalten in MySQL und behalte dabei die automatische Inkrementierung bei?

Wie entferne ich Primärschlüssel aus Spalten in MySQL und behalte dabei die automatische Inkrementierung bei?

DDD
Freigeben: 2024-12-28 15:16:10
Original
813 Leute haben es durchsucht

How to Remove Primary Keys from Columns in MySQL While Keeping Auto-Increment?

Primärschlüssel in MySQL entfernen

Frage:

Wie können Sie Primärschlüssel aus bestimmten Spalten in einer MySQL-Tabelle löschen? unter Beibehaltung einer automatisch inkrementierenden ID als primäre ID Schlüssel?

Antwort:

Hintergrund:

In MySQL muss eine automatisch inkrementierende Spalte als Teil von definiert werden einen Index, was es schwierig macht, Primärschlüssel aus anderen Spalten ohne zu entfernen Fehler.

Lösung:

Um Primärschlüssel aus bestimmten Spalten zu entfernen, befolgen Sie diese Schritte:

  1. Deaktivieren Sie die automatische Inkrementierung : Verwenden Sie die ALTER TABLE-Anweisung, um den Datentyp der ID-Spalte in INT zu ändern und NOT NULL zu entfernen Einschränkung.
ALTER TABLE user_customer_permission MODIFY id INT;
Nach dem Login kopieren
  1. Primärschlüssel löschen: Sobald die Eigenschaft der automatischen Inkrementierung entfernt wurde, verwenden Sie die ALTER TABLE-Anweisung, um die Primärschlüsseleinschränkung aus der user_customer_id zu löschen und die Spalten „permission_id“.
ALTER TABLE user_customer_permission DROP PRIMARY KEY;
Nach dem Login kopieren

Zusätzlich Überlegungen:

  • Der ursprüngliche zusammengesetzte Primärschlüssel erstreckte sich über alle drei Spalten, sodass die ID-Spalte möglicherweise nicht eindeutig ist.
  • Wenn die ID eindeutig ist, können Sie die erneut aktivieren Primärschlüssel und automatische Inkrementierungseigenschaften für die ID-Spalte.
ALTER TABLE user_customer_permission MODIFY id INT NOT NULL PRIMARY KEY AUTO_INCREMENT;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie entferne ich Primärschlüssel aus Spalten in MySQL und behalte dabei die automatische Inkrementierung bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage