挑戰:
您正在使用現有 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中文網其他相關文章!