首页 > 数据库 > 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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板