首頁 > 資料庫 > mysql教程 > 如何為現有 SQLite 表新增外鍵?

如何為現有 SQLite 表新增外鍵?

Mary-Kate Olsen
發布: 2025-01-05 07:33:40
原創
990 人瀏覽過

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

為現有 SQLite 資料表新增外鍵

挑戰:

您正在使用現有 SQLite表,並且您需要在特定的上新增外鍵約束

解決方案:

與其他SQL 實作不同,SQLite 不支援ALTER TABLE 指令的ADD CONSTRAINT 變體。因此,無法直接向現有表新增外鍵約束。

替代方法:

要獲得所需的結果,您必須按照以下步驟操作:

  1. 將現有表中的資料保存到臨時表中表。
  2. 刪除現有表。
  3. 重新建立包含外鍵約束的表。
  4. 將資料從臨時表插入新表。

此過程的範例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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板