教程 sqlite tutorial

外键约束

外键约束用于保证一个表中的字段值必须在另一个表中存在,从而维护数据之间的关联关系。

启用外键支持

SQLite 默认关闭外键约束,需要通过以下命令开启:

sql
PRAGMA foreign_keys = ON;

创建带外键的表

sql
CREATE TABLE orders (
  id INTEGER PRIMARY KEY,
  user_id INTEGER,
  order_date TEXT,
  FOREIGN KEY (user_id) REFERENCES users(id)
);

以上示例中,orders 表的 user_id 必须对应 users 表中已存在的 id。

外键约束操作

  • ON DELETE CASCADE 删除父表记录时,同时删除子表相关记录。

  • ON UPDATE CASCADE 更新父表主键时,自动更新子表对应外键。

示例:

sql
CREATE TABLE orders (
  id INTEGER PRIMARY KEY,
  user_id INTEGER,
  order_date TEXT,
  FOREIGN KEY (user_id) REFERENCES users(id)
    ON DELETE CASCADE
    ON UPDATE CASCADE
);

合理使用外键约束,能有效防止数据孤立和保持数据库完整性。