pls guys ...当删除该特定ID时,有没有办法删除所有引用数据库中特定ID的iD?
例如,我有一个公司数据,其中包含有员工的部门列表,所有这些员工都有不同的记录,如出勤率,生物数据,工资计划等。我设计我的数据库的方式是使用外键将部门下的员工引用到该部门,并且明智地说,特定员工下的所有记录都使用外键引用该员工。
现在,是否可以使用某种触发器或任何其他类型的机制,这样当我从员工表中删除员工时,每个其他记录也将被删除。
我会考虑使用多表删除,但由于我使用java sqlite,它不支持我阅读。我不想经历所有表格中一个接一个地删除所有记录的压力。
非常感谢你们
答案 0 :(得分:1)
ON DELETE CASCADE
可以帮到你。看看documentation:
CASCADE:A" CASCADE" action将父键上的删除或更新操作传播到每个从属子键。对于" ON DELETE CASCADE" action,这意味着子表中与已删除的父行关联的每一行也将被删除。
您只需要引用父表的行ID:
CREATE TABLE parentTable(
parent_id INTEGER PRIMARY KEY,
data TEXT
);
CREATE TABLE childTable(
child_id INTEGER,
parent_id INTEGER REFERENCES parentTable(parent_id) ON DELETE CASCADE
);
我认为你还需要激活外键才能工作:
PRAGMA foreign_keys = ON;