Heim >Datenbank >MySQL-Tutorial >Wie behebe ich den Fehler „UNIQUE-Einschränkung fehlgeschlagen: sqlite3-Ergebniscode 1555' in SQLite?

Wie behebe ich den Fehler „UNIQUE-Einschränkung fehlgeschlagen: sqlite3-Ergebniscode 1555' in SQLite?

Barbara Streisand
Barbara StreisandOriginal
2024-12-25 15:22:18193Durchsuche

How to Resolve

So behandeln Sie den UNIQUE Constraint Failed-Fehler in SQLite

Problem:

Beim Einfügen von Daten in Ihre SQLite-Datenbank müssen Sie Erhalten Sie die Fehlermeldung „UNIQUE-Einschränkung fehlgeschlagen: sqlite3-Ergebniscode 1555.“

Erklärung:

Dieser Fehler tritt auf, wenn Sie versuchen, Daten mit einem Primärschlüsselwert einzufügen, der bereits in der Tabelle vorhanden ist. Standardmäßig erzwingt SQLite eindeutige Einschränkungen für Primärschlüsselspalten, um doppelte Einträge zu verhindern.

Lösung:

Es gibt zwei Hauptlösungen, um diesen Fehler zu behandeln:

1. Doppelte Datensätze ignorieren:

Um doppelte Datensätze zu ignorieren und mit dem Einfügen anderer Daten fortzufahren, verwenden Sie die folgende Syntax:

INSERT OR IGNORE INTO (column1, column2, ...) VALUES (value1, value2, ...);

2. Vorhandene Datensätze ersetzen:

Um den vorhandenen Datensatz durch die neuen Daten zu ersetzen, verwenden Sie die folgende Syntax:

INSERT OR REPLACE INTO (column1, column2, ...) VALUES (value1, value2, ...);

Beispiel:

In Ihrem bereitgestellten Code fügen Sie doppelte list_id-Werte in die Listentabelle und doppelte item_id-Werte in die Artikeltabelle ein. Um diesen Fehler zu beheben, können Sie den folgenden geänderten Code verwenden:

Modified list Insert Statements:

INSERT OR IGNORE INTO list VALUES (1, "user1-list1", 1);
INSERT OR IGNORE INTO list VALUES (2, "user1-list2", 1);
INSERT OR IGNORE INTO list VALUES (3, "user1-list3", 1);
INSERT OR IGNORE INTO list VALUES (1, "user2-list1", 2);
INSERT OR IGNORE INTO list VALUES (1, "user3-list1", 3);
INSERT OR IGNORE INTO list VALUES (2, "user3-list2", 3);

Modified item Insert Statements:

INSERT OR IGNORE INTO item VALUES (1, "user1-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (2, "user1-list1-item2", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (1, "user1-list2-item1", "FALSE", 2);
INSERT OR IGNORE INTO item VALUES (1, "user1-list3-item1", "FALSE", 3);
INSERT OR IGNORE INTO item VALUES (2, "user1-list3-item2", "FALSE", 3);
INSERT OR IGNORE INTO item VALUES (1, "user2-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (2, "user2-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (1, "user3-list1-item1", "FALSE", 1);
INSERT OR IGNORE INTO item VALUES (1, "user3-list3-item1", "FALSE", 2);

Durch die Verwendung der Syntax INSERT OR IGNORE oder INSERT OR REPLACE können Sie das Problem beheben Der UNIQUE-Einschränkungsfehler ist fehlgeschlagen und Sie geben Ihre Daten wie vorgesehen ein.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „UNIQUE-Einschränkung fehlgeschlagen: sqlite3-Ergebniscode 1555' in SQLite?. 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