Heim >Datenbank >MySQL-Tutorial >Wie füge ich einer Tabelle mit einem vorhandenen Primärschlüssel in MySQL eine Auto-Inkrement-ID hinzu?

Wie füge ich einer Tabelle mit einem vorhandenen Primärschlüssel in MySQL eine Auto-Inkrement-ID hinzu?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-30 04:17:14695Durchsuche

How to Add an Auto-Increment ID to a Table with an Existing Primary Key in MySQL?

Hinzufügen einer Auto-Inkrement-ID zu einer vorhandenen Tabelle mit Primärschlüssel

Das Erweitern einer vorhandenen Tabelle mit einer Auto-Inkrement-ID ist eine häufige Anforderung im Datenbankmanagement. Das Hinzufügen einer automatisch inkrementierenden Spalte zu einer Tabelle, die bereits über einen Primärschlüssel verfügt, kann jedoch zu Herausforderungen führen.

Wenn Sie versuchen, eine automatisch inkrementierende Spalte mit der Anweisung hinzuzufügen:

ALTER TABLE users
ADD id int NOT NULL AUTO_INCREMENT

Möglicherweise tritt der Fehler auf:

#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

Dies liegt daran, dass MySQL nur eine Spalte mit automatischer Inkrementierung pro Tabelle zulässt und diese als primäre Spalte festgelegt werden muss Schlüssel.

Um dieses Problem zu beheben, müssen Sie zunächst den vorhandenen Primärschlüssel ändern, um die automatische Inkrementierung zu ermöglichen, und dann die neue Spalte für die automatische Inkrementierung hinzufügen. Hier ist ein Beispiel:

ALTER TABLE `users`
MODIFY COLUMN `id` INT NOT NULL AUTO_INCREMENT,
ADD COLUMN `name` VARCHAR(255) NOT NULL

Durch die Ausführung dieser Abfrage ändern Sie die vorhandene ID-Spalte so, dass sie automatisch inkrementiert wird, und fügen der Tabelle eine neue Namensspalte hinzu. Die ID-Spalte dient nun sowohl als Primärschlüssel als auch als Auto-Inkrement-ID.

Das obige ist der detaillierte Inhalt vonWie füge ich einer Tabelle mit einem vorhandenen Primärschlüssel in MySQL eine Auto-Inkrement-ID hinzu?. 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