删除包含外键的数据



为了良好的实践和维护数据完整性,我通常使用外键,但我总是面临以下问题"问题";尝试删除某些数据时:

我有一个带有主组表的场景:

我还有其他几个与组相关的表,例如:

user_group(用户和组之间的关系表(

course_group(课程和组之间的关系表(

当删除一个组时,我总是需要在…之前删除相关表中对该组的引用。。。但目前我有几个关系表,我的排除代码最终变得相当大。

我的问题是:有没有什么函数或库可以让我更自动地完成这项工作?一个函数,它可能会为我检查所有这些引用并已排除。如果有人知道如何以尽可能少的代码数量使其更快,谢谢注意:我目前正在使用PHP

您希望on delete cascade作为子表外键约束中的一个选项。

假设表groups看起来像:

create table groups (
id int primary key,
... -- other columns here
);

然后将子表user_groups声明为:

create table user_groups (
... -- some columns here
group_id int,
foreign key (group_id) references groups(id) on delete cascade
)

最新更新