如何删除有外键关系的表中的记录?
假设我有两个表: employee和department,第一个表有一个deptID作为引用部门id的外键。
现在我想删除像delete from department where depID=10这样的表中的特定行。删除部门中的职员也可以,我也想维护外键关系。执行此操作的查询是什么?
发布于 2009-05-14 05:59:17
您应该指定delete级联到employee表。这有点依赖于你的数据库,但是几乎每个数据库都支持级联删除。
例如在SQL Server中:
CREATE TABLE Employee
(
DepId INT NOT NULL REFERENCES Department(DepId) ON DELETE CASCADE
)发布于 2009-05-14 06:01:16
这取决于数据库和您如何定义您的关系。您可以使删除级联,这意味着删除父级会删除子记录,或者“delete nullify”,这会导致子关系在其FK字段中具有NULL,或者您拥有的内容。这取决于您的需求。通常,在没有自动处理的情况下,我不会根据需要定义作废、级联和删除每条记录。
发布于 2009-05-14 06:00:59
在SQL Server中,您可以将关系标记为mark
或者,首先对Employees表执行DELETE,然后对Departments表执行第二个DELETE。
https://stackoverflow.com/questions/861752
复制相似问题