SQLite外鍵
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字段。