SQLite Foreign Key语句用于指定一个表中的值也出现在另一个表中。 它在SQLite数据库中执行强制引用完整性。 被引用的表称为父表,而具有外键(或引用父表)的表称为子表。 子表中的外键通常会引用父表中的主键。
在SQLite中,只能在CREATE TABLE语句中定义外键。
创建外键
语法
CREATE TABLE table_name
(
column1 datatype [ NULL | NOT NULL ],
column2 datatype [ NULL | NOT NULL ],
...
CONSTRAINT fk_column
FOREIGN KEY (column1, column2, ... column_n)
REFERENCES parent_table (column1, column2, ... column_n)
);
示例:
创建一个以department表作为引用表(父表)拥有外键的 employees 表, employees 表的department_id列引用父表department的department_id列作为外键。
-- 父表
CREATE TABLE departments
(
department_id INTEGER PRIMARY KEY AUTOINCREMENT,
department_name VARCHAR
);
-- 拥有外键的表
CREATE TABLE employees
(
employee_id INTEGER PRIMARY KEY AUTOINCREMENT,
last_name VARCHAR NOT NULL,
first_name VARCHAR,
department_id INTEGER,
CONSTRAINT fk_departments
FOREIGN KEY (department_id)
REFERENCES departments(department_id)
);
这里在department表中创建一个主键department_id。 然后,在employees表上创建一个名为fk_departments的外键,该department_id字段引用department表的department_id字段。
上一篇:
SQLite主键
下一篇:
SQLite快速入门
