MySQL 主动获取外键关系中父表数据的可删除状态
- 外键关系中父表的行数据在子表中有关联的时候是不可删除的,那么有什么办法可以主动获取
当前父表中每行数据的状态 - 是否可以被删除 - 下面建了两个表做测试,希望能在两个表的基础上给出解决方法
父表建表语句:
create table category ( sid varchar(50) not null primary key );
向父表中插入数据:
INSERT INTO demodb.category (sid) VALUES ('干果'); INSERT INTO demodb.category (sid) VALUES ('水果'); INSERT INTO demodb.category (sid) VALUES ('蔬菜');
子表建表语句:
create table goods ( sid varchar(50) not null primary key, category varchar(50) null, constraint goods_category_sid_fk foreign key (category) references category(sid) on update cascade );
向子表插入数据:
INSERT INTO demodb.goods (sid, category) VALUES ('苹果', '水果'); INSERT INTO demodb.goods (sid, category) VALUES ('香蕉', '水果'); INSERT INTO demodb.goods (sid, category) VALUES ('空心菜', '蔬菜'); INSERT INTO demodb.goods (sid, category) VALUES ('菠菜', '蔬菜');
- 在上面数据的基础上如果要删除表
category
中的水果
,数据库则会报错
那么我想要在用户做删除操作之前就得知表category
中的所有数据哪些行可删除
哪些行不可删除,请不要在后端(比如JAVA)中通过遍历表category
的数据
来获取,使用SQL语句如何在获取表category
的数据的同时追加每行的状态
- 有必要的话:QQ=409223171
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论