Herausforderung:
Sie arbeiten mit einer vorhandenen SQLite-Tabelle , und Sie müssen eine Fremdschlüsseleinschränkung für eine bestimmte hinzufügen Spalte.
Lösung:
Im Gegensatz zu anderen SQL-Implementierungen unterstützt SQLite nicht die ADD CONSTRAINT-Variante des ALTER TABLE-Befehls. Daher ist es nicht möglich, einer vorhandenen Tabelle direkt eine Fremdschlüsseleinschränkung hinzuzufügen.
Alternativer Ansatz:
Um das gewünschte Ergebnis zu erzielen, müssen Sie die folgenden Schritte ausführen:
Beispiel-SQL hierfür Prozess:
-- Step 1: Create a temporary table CREATE TEMPORARY TABLE t_child AS SELECT * FROM child; -- Step 2: Drop the existing table DROP TABLE child; -- Step 3: Recreate the table with the foreign key constraint CREATE TABLE child ( id INTEGER PRIMARY KEY, parent_id INTEGER, description TEXT, FOREIGN KEY (parent_id) REFERENCES parent(id) ); -- Step 4: Insert data back from the temporary table INSERT INTO child SELECT * FROM t_child;
Durch die Ausführung dieser Schritte erstellen Sie im Wesentlichen eine neue Tabelle mit der gewünschten Fremdschlüsseleinschränkung, während die Daten aus der Tabelle erhalten bleiben Originaltisch.
Das obige ist der detaillierte Inhalt vonWie füge ich einen Fremdschlüssel zu einer vorhandenen SQLite-Tabelle hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!