首页 >数据库 >mysql教程 >如何向现有 SQLite 表添加外键?

如何向现有 SQLite 表添加外键?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-05 07:33:40995浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn