Heim > Datenbank > MySQL-Tutorial > Wie kann ich einer vorhandenen Datenbanktabelle eine Identitätsspalte hinzufügen?

Wie kann ich einer vorhandenen Datenbanktabelle eine Identitätsspalte hinzufügen?

Barbara Streisand
Freigeben: 2025-01-22 23:20:13
Original
451 Leute haben es durchsucht

How Can I Add an Identity Column to an Existing Database Table?

Ändern vorhandener Tabellen, um Identitätsspalten einzuschließen

Viele Datenbankaufgaben erfordern das Hinzufügen von Identitätsspalten zu vorhandenen Tabellen. Eine häufige Frage ist, ob eine vorhandene Spalte geändert oder eine neue erstellt werden soll.

Warum eine direkte Konvertierung nicht möglich ist

Die direkte Umwandlung einer vorhandenen Spalte in eine Identitätsspalte ist nicht möglich. Identitätsspalten generieren sequentielle Werte, beginnend mit einem definierten Startwert. Das Ändern einer vorhandenen Spalte würde die Datenintegrität beeinträchtigen.

Strategien zum Hinzufügen einer Identitätsspalte

Es gibt zwei Hauptmethoden zum Hinzufügen einer Identitätsspalte:

1. Erstellen einer neuen Tabelle mit Identität

Dazu gehört Folgendes:

  • Generieren eines Skripts zum Übertragen von Daten aus der Originaltabelle in eine neue Tabelle, die die Identitätsspalte enthält.
  • Entfernen des Originaltisches.
  • Die neue Tabelle wird so umbenannt, dass sie mit dem Namen der ursprünglichen Tabelle übereinstimmt.
  • Diese Methode behält die ursprünglichen Datenwerte bei (obwohl sie möglicherweise nicht sequentiell sind).

2. Hinzufügen einer neuen Identitätsspalte

Dieser Ansatz besteht aus:

  • Hinzufügen einer neuen Spalte mit der Identitätseigenschaft.
  • Entfernen der ursprünglichen Spalte (oder Migrieren von Daten in die neue Spalte).
  • Die neue Spalte wird so umbenannt, dass sie mit dem Namen der ursprünglichen Spalte übereinstimmt.
  • Diese Methode behält nicht die ursprünglichen Datenwerte in der Identitätsspalte bei; Die Identitätsspalte generiert neue sequentielle Werte.

Illustrative SQL-Abfragen

Methode 1: Neue Tabellenerstellung

CREATE TABLE New_Table (
    Id INT NOT NULL IDENTITY(1, 1),
    Name VARCHAR(50) NULL
);

INSERT INTO New_Table (Id, Name)
SELECT Id, Name
FROM Original_Table;

DROP TABLE Original_Table;

EXEC sp_rename 'New_Table', 'Original_Table';
Nach dem Login kopieren

Methode 2: Hinzufügen einer neuen Spalte

ALTER TABLE Original_Table
ADD Id_new INT IDENTITY(1, 1);

ALTER TABLE Original_Table
DROP COLUMN Id;

EXEC sp_rename 'Original_Table.Id_new', 'Id', 'COLUMN';
Nach dem Login kopieren

Wichtige Überlegungen

  • Verwenden Sie beim Erstellen einer neuen Tabelle mit einer Identitätsspalte die Einschränkung NOT NULL. Setzen Sie IDENTITY_INSERT auf ON, bevor Sie Daten einfügen, um vorhandene Werte beizubehalten (falls gewünscht).
  • Die Identitätsspalte generiert automatisch fortlaufende Nummern und ersetzt alle bereits vorhandenen Werte in der Spalte.

Das obige ist der detaillierte Inhalt vonWie kann ich einer vorhandenen Datenbanktabelle eine Identitätsspalte hinzufügen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage