Heim > Datenbank > MySQL-Tutorial > Warum kann ich keinen Wert in eine Identitätsspalte einfügen und wie kann ich das Problem beheben?

Warum kann ich keinen Wert in eine Identitätsspalte einfügen und wie kann ich das Problem beheben?

Patricia Arquette
Freigeben: 2025-01-19 09:12:10
Original
774 Leute haben es durchsucht

Why Can't I Insert a Value into an Identity Column, and How Do I Fix It?

Fehlerbehebung für den Fehler „Expliziter Wert für Identitätsspalte kann nicht eingefügt werden“

Wenn Sie versuchen, einen Wert manuell in eine Identitätsspalte einzufügen (eine Spalte, der von der Datenbank automatisch eindeutige sequentielle Werte zugewiesen werden), tritt die Fehlermeldung auf: „Der explizite Wert für die Identitätsspalte in der Tabelle ‚Tabelle‘ kann nicht eingefügt werden, wenn IDENTITY_INSERT lautet auf AUS stellen.“ Dies liegt daran, dass Identitätsspalten so konzipiert sind, dass sie ihre Werte selbst verwalten.

Die Lösung: IDENTITY_INSERT vorübergehend aktivieren

Die Lösung besteht darin, IDENTITY_INSERT vorübergehend für die spezifische Tabelle zu aktivieren. Diese Einstellung überschreibt die automatische Wertgenerierung. Hier ist der Prozess:

  1. Aktivieren Sie IDENTITY_INSERT: Verwenden Sie den folgenden SQL-Befehl und ersetzen Sie TableName durch den Namen Ihrer Tabelle:
SET IDENTITY_INSERT TableName ON
Nach dem Login kopieren
  1. Führen Sie INSERT aus: Jetzt können Sie Ihre INSERT-Anweisung mit dem expliziten Wert für die Identitätsspalte ausführen. Zum Beispiel:
INSERT INTO TableName (IdentityColumnName, Column2, Column3)
VALUES (100, 'Some Value', 'Another Value');
Nach dem Login kopieren
  1. Deaktivieren IDENTITY_INSERT: Entscheidend ist, dass Sie nach dem Einfügen IDENTITY_INSERT deaktivieren, um das automatische Verhalten der Identitätsspalte wiederherzustellen:
SET IDENTITY_INSERT TableName OFF
Nach dem Login kopieren

Anschauliches Beispiel:

Stellen Sie sich eine Tabelle Orders mit einer Identitätsspalte OrderID vor. Um einen Datensatz mit einem bestimmten OrderID einzufügen, gehen Sie wie folgt vor:

SET IDENTITY_INSERT Orders ON;

INSERT INTO Orders (OrderID, CustomerID, OrderDate)
VALUES (12345, 1, '2024-03-08');

SET IDENTITY_INSERT Orders OFF;
Nach dem Login kopieren

Dadurch können Sie den Wert 12345 in die Spalte OrderID einfügen. Denken Sie daran, IDENTITY_INSERT nach dem Einfügen immer zu deaktivieren, um die Integrität Ihrer Identitätsspalte zu wahren.

Das obige ist der detaillierte Inhalt vonWarum kann ich keinen Wert in eine Identitätsspalte einfügen und wie kann ich das Problem beheben?. 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