微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

删除包含外键的数据

如何解决删除包含外键的数据

我通常使用外键来获得良好的做法并维护数据完整性,但是在尝试删除某些数据时,我总是会遇到以下“问题”:

我有一个带有主组表的方案:

还有其他一些与组有关的表,例如:

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
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。