使用SQL语句如何实现删除多个表的记录?

比如:如果删除栏目表下的一条记录,那么该栏目下对应的新闻,新闻表中的新闻也将删除,同时还有评论表中对应这些新闻的评论也将删除。用sql语句该怎么写?... 比如:如果删除栏目表下的一条记录,那么该栏目下对应的新闻,新闻表中的新闻也将删除,同时还有评论表中对应这些新闻的评论也将删除。

用sql语句该怎么写?
展开
 我来答
凌清晖2d
2009-09-15 · TA获得超过174个赞
知道小有建树答主
回答量:105
采纳率:0%
帮助的人:87.4万
展开全部
方法有三:
1.利用触发器。
2.添加外键关系,并设置级联删除
3.先删除评论,再删除文章,最后删除栏目,同时写在一条SQL语句中即可
假如要删除栏目id为1的所有相关信息
delete comment where articleid in (select articleid from article where categoryid=1) delete article where categoryid=1 delete category where categoryid=1
匿名用户
2015-07-10
展开全部
写个存储过程来实现,CardNo是自定义的数据类型;
参考如下例子:
CREATE PROCEDURE DelFixUser
@CardNo CardNo
AS
Declare @CarNo CarNo
select @CarNo=车辆号码 from FixCardIndexTable
where 卡号=@CardNo
Delete from AllCardIndexTable
where 卡号=@CardNo
Delete from FixCardIndexTable
where 卡号=@CardNo
Delete from FixCardEndDateTable
where 卡号=@CardNo
Delete from CardPassWordTable
where 卡号=@CardNo
Delete from UserCarInfoTable
where 车辆牌号=@CarNo
说明:删除一个固定用户记录,同时从AllCardIndexTable、FixCardIndexTable、FixCardEndDateTable、CardPassWordTable和UserCarInfoTable表中删除相应的记录。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiwangbdzh
2009-09-15 · 超过54用户采纳过TA的回答
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:93.3万
展开全部
可以的在删除的时候做个转向页面 这个页面时专门执行删除语句的,然后在这个页面多写几个SQL语句就行了 这个是最笨最简单的方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chuangyuan88
2009-09-15 · 超过43用户采纳过TA的回答
知道小有建树答主
回答量:176
采纳率:0%
帮助的人:73.2万
展开全部
或者写一条sql 或者分着写三条 写一条就是要嵌套 很麻烦 那就写三条分着写 先删除评论 再删除新闻 接着删除栏目呗 如果是Oracle里 那就更好办了 用pl/sql直接找到这个表,直接删就可以了 不行再回滚 记得先备份哦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谈论用户名
2009-09-15 · TA获得超过1189个赞
知道小有建树答主
回答量:3981
采纳率:21%
帮助的人:1066万
展开全部
用事务
一个表一个表删除。
先删除评论表
再删除新闻表
最删除栏目。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式