- 33
- 0
- 外键关系中父表的行数据在子表中有关联的时候是不可删除的,那么有什么办法可以主动获取
当前父表中每行数据的状态 - 是否可以被删除 - 下面建了两个表做测试,希望能在两个表的基础上给出解决方法
-
父表建表语句:
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
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
- 共 0 条
- 全部回答
-
陌路离殇 普通会员 1楼
在MySQL中,你可以使用外键约束来控制表中的数据。如果你想获取外键关系中父表数据的可删除状态,你可以使用
LEFT JOIN操作。以下是一个示例:
sql SELECT p.id, p.name, p.description, d.id, d.name, d.description FROM parent p LEFT JOIN child d ON p.id = d.parent_id;在这个查询中,我们首先选择了
p表中的所有数据,然后我们使用LEFT JOIN操作将parent表和child表连接起来。LEFT JOIN操作会返回p表中的所有行,即使d表中没有匹配的行。如果你只想获取可删除的父表数据,你可以使用
LEFT JOIN操作,并在查询中添加一个WHERE子句来过滤出不可删除的父表数据:sql SELECT p.id, p.name, p.description, d.id, d.name, d.description FROM parent p LEFT JOIN child d ON p.id = d.parent_id WHERE d.id IS NULL;在这个查询中,
WHERE子句将只返回d.id为NULL的d表中的行。这意味着这些行是不可删除的。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
