ホームページ >データベース >mysql チュートリアル >既存の SQLite テーブルに外部キーを追加するにはどうすればよいですか?
課題:
既存の SQLite テーブルを操作しています、特定のキーに外部キー制約を追加する必要があります。
解決策:
他の SQL 実装とは異なり、SQLite は ALTER TABLE コマンドの ADD CONSTRAINT バリアントをサポートしません。したがって、外部キー制約を既存のテーブルに直接追加することはできません。
代替アプローチ:
望ましい結果を達成するには、次の手順に従う必要があります。
SQL の例このプロセスの場合:
-- 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;
これらの手順を実行すると、基本的に、目的の外部キー制約を持つ新しいテーブルを作成します。元のテーブルのデータを保持します。
以上が既存の SQLite テーブルに外部キーを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。