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
字段。