Maison >base de données >tutoriel mysql >Comment ajouter une clé étrangère à une table SQLite existante ?
Défi :
Vous travaillez avec une table SQLite existante , et vous devez ajouter une contrainte de clé étrangère sur un élément particulier column.
Solution :
Contrairement à d'autres implémentations SQL, SQLite ne prend pas en charge la variante ADD CONSTRAINT de la commande ALTER TABLE. Par conséquent, il n'est pas possible d'ajouter directement une contrainte de clé étrangère à une table existante.
Approche alternative :
Pour obtenir le résultat souhaité, vous devez suivre ces étapes :
Exemple SQL pour cela processus :
-- 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;
En exécutant ces étapes, vous créez essentiellement une nouvelle table avec la contrainte de clé étrangère souhaitée tout en préservant les données du tableau original.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!