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

2024-11-23 06:23:09
推荐回答(5个)
回答1:

方法有三:
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

回答2:

写个存储过程来实现,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表中删除相应的记录。

回答3:

可以的在删除的时候做个转向页面 这个页面时专门执行删除语句的,然后在这个页面多写几个SQL语句就行了 这个是最笨最简单的方法

回答4:

或者写一条sql 或者分着写三条 写一条就是要嵌套 很麻烦 那就写三条分着写 先删除评论 再删除新闻 接着删除栏目呗 如果是Oracle里 那就更好办了 用pl/sql直接找到这个表,直接删就可以了 不行再回滚 记得先备份哦

回答5:

用事务
一个表一个表删除。
先删除评论表
再删除新闻表
最删除栏目。