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