主题
外键约束
外键约束用于保证一个表中的字段值必须在另一个表中存在,从而维护数据之间的关联关系。
启用外键支持
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
);
合理使用外键约束,能有效防止数据孤立和保持数据库完整性。