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列引用父表departmentdepartment_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快速入門