首页新闻找找看学习计划

删除相册的同时删除相册里的所有相片。

0
[已解决问题] 解决于 2017-05-12 11:30
数据库的。
我的需求是:删除相册的同时删除相册里的所有相片。

相片表:imgtab 
字段有:imgId,imgUrl,imgClassId,userId
相册表:imgclasstab
字段有:imgClassId,imgClassId,userId
 
 
我能用两个语句同时删除,但是如果是写在一个语句中,应该是怎么写呢?
怪你无可取代的主页 怪你无可取代 | 菜鸟二级 | 园豆:244
提问于:2017-05-12 10:45
< >
分享
最佳答案
0

貌似只能用两个语句,关系型数据库(例如sqlserver)可以添加外键,设置级联删除

奖励园豆:5
ldybyz | 初学一级 |园豆:200 | 2017-05-12 11:04

如果做级联删除,怎么操作呢

 

怪你无可取代 | 园豆:244 (菜鸟二级) | 2017-05-12 11:05

@怪你无可取代: 在数据库添加约束,删除的时候直接delete from imgclasstab where xxx,相册下面的相片也跟着删除了,建议你还是看看书或者百度一下级联删除吧

ldybyz | 园豆:200 (初学一级) | 2017-05-12 11:29

@ldybyz: 恩,谢谢,使用级联已解决

怪你无可取代 | 园豆:244 (菜鸟二级) | 2017-05-12 11:30
其他回答(3)
0

可以用trigger

~扎克伯格 | 园豆:1799 (小虾三级) | 2017-05-12 11:09

 具体怎么写呢?

CREATE TRIGGER trigger_name
BEFORE
DELETE ON imgclasstab
FOR EACH ROW
select * from imgtab where userId=7 and imgClassId=68

 

报错了:

Error Code : 1415
Not allowed to return a result set from a trigger

支持(0) 反对(0) 怪你无可取代 | 园豆:244 (菜鸟二级) | 2017-05-12 11:11
 create trigger deleimgtab
on imgclasstab
before delete
as 
delete from imgtab where imgClassId=imgclasstab.imgClassID
支持(0) 反对(0) 怪你无可取代 | 园豆:244 (菜鸟二级) | 2017-05-12 11:51
0

级联删除你只需要在数据库建立关系,删除主表,从表相关数据自然就没了... 没了....没了...

Delete * from imgClasstab where imgClassID=something 即可。

爱编程的大叔 | 园豆:29862 (高人七级) | 2017-05-12 11:10

something是什么

支持(0) 反对(0) 怪你无可取代 | 园豆:244 (菜鸟二级) | 2017-05-12 11:12

@怪你无可取代: 看了一下你回复其他人的,我的建议还是很老套的,

建议买一本《SQL Server 或者SQL 入门啥的》看看,

不用担心浪费钱,你现在这情况,书还是能看个几个月,学习到好多东西的。

支持(0) 反对(0) 爱编程的大叔 | 园豆:29862 (高人七级) | 2017-05-12 11:18

@爱编程的大叔: 恩恩,以前学过,搞忘记了。。。

支持(0) 反对(0) 怪你无可取代 | 园豆:244 (菜鸟二级) | 2017-05-12 11:29
0

DELETE imgtab,imgclasstab FROM imgtab
LEFT JOIN imgclasstab ON imgtab.imgClassId=imgclasstab.imgClassId
WHERE imgtab.userId=7 and imgtab.imgClassId=73

 

已解决

怪你无可取代 | 园豆:244 (菜鸟二级) | 2017-05-12 11:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册