我有3个表,如员工,部门和电子表。
电子表是Department表的子表,Department表是Employee表的子表。
我想删除Employee表中的一条记录,其中E_id = 2(这是主键)这是Department表中的外键(E_id是外键,Dept_id是主键),Dept_id是Electronics表中的外键。 / p>
首先,我想删除Electronics表中的相关记录,然后删除Department表,最后删除Employee表。
请指导我如何操作。
答案 0 :(得分:1)
您可以在此处阅读有关sqlite中外键支持的更多信息:http://www.sqlite.org/foreignkeys.html
但你应该可以打开它:
sqlite> PRAGMA foreign_keys = ON;
然后使用deletes cascading设置数据库架构:
-- Database schema
CREATE TABLE Employee(
E_id INTEGER PRIMARY KEY,
name TEXT
);
CREATE TABLE Department(
Dept_id INTEGER PRIMARY KEY,
name TEXT,
E_id INTEGER REFERENCES Employee(E_id) ON DELETE CASCADE
);
CREATE TABLE Electronics(
Elec_id INTEGER PRIMARY KEY,
name TEXT,
Dept_id INTEGER REFERENCES Department(Dept_id) ON DELETE CASCADE
);
完成所有这些以及表格中的数据:
DELETE FROM Employee WHERE E_id = 2;