Heim >Datenbank >MySQL-Tutorial >Warum kann ich keinen Wert in eine Identitätsspalte einfügen und wie kann ich das Problem beheben?
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:
IDENTITY_INSERT
: Verwenden Sie den folgenden SQL-Befehl und ersetzen Sie TableName
durch den Namen Ihrer Tabelle:<code class="language-sql">SET IDENTITY_INSERT TableName ON</code>
INSERT
-Anweisung mit dem expliziten Wert für die Identitätsspalte ausführen. Zum Beispiel:<code class="language-sql">INSERT INTO TableName (IdentityColumnName, Column2, Column3) VALUES (100, 'Some Value', 'Another Value');</code>
IDENTITY_INSERT
: Entscheidend ist, dass Sie nach dem Einfügen IDENTITY_INSERT
deaktivieren, um das automatische Verhalten der Identitätsspalte wiederherzustellen:<code class="language-sql">SET IDENTITY_INSERT TableName OFF</code>
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:
<code class="language-sql">SET IDENTITY_INSERT Orders ON; INSERT INTO Orders (OrderID, CustomerID, OrderDate) VALUES (12345, 1, '2024-03-08'); SET IDENTITY_INSERT Orders OFF;</code>
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!