Heim > Datenbank > MySQL-Tutorial > Wie füge ich einen Fremdschlüssel zu einer vorhandenen SQLite-Tabelle hinzu?

Wie füge ich einen Fremdschlüssel zu einer vorhandenen SQLite-Tabelle hinzu?

Mary-Kate Olsen
Freigeben: 2025-01-05 07:33:40
Original
1038 Leute haben es durchsucht

How Do I Add a Foreign Key to an Existing SQLite Table?

Hinzufügen eines Fremdschlüssels zu einer vorhandenen SQLite-Tabelle

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:

  1. Speichern Sie die Daten aus der vorhandenen Tabelle in einer temporären Tabelle.
  2. Löschen Sie die vorhandenen Tabelle.
  3. Erstellen Sie die Tabelle mit der Fremdschlüsseleinschränkung neu.
  4. Fügen Sie die Daten aus der temporären Tabelle wieder in die neue Tabelle ein.

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;
Nach dem Login kopieren

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!

Quelle:php.cn
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