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
DDDOriginal
2024-12-28 15:16:10762Durchsuche

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;
  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;

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;

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!

Stellungnahme:
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