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
欄位。