sql语句从主表删除一条数据,并且把先关联的多个子表数据也删除

有5个表,一个主表t1,4个子表别是,t2,t3,t4,t5,主表和所有子表相关联的字段是id,现在要求是从主表t1根据一个id删除一条数据,然后其他子表也要删除与这个i... 有5个表,一个主表t1,4个子表别是,t2,t3,
t4,t5,主表和所有子表相关联的字段是id,现在要求是从主表t1根据一个id删除一条数据,然后其他子表也要删除与这个id相关联的数据
展开
 我来答
康熙转世
2015-11-10 · TA获得超过6839个赞
知道大有可为答主
回答量:4325
采纳率:85%
帮助的人:2948万
展开全部
仅凭sql不可能实现,多条实现先删从表再删主表
楼主的需求解决方案
1.如果是编程实现,java框架hibernate的cascade可以模拟做到删主去重
2.表中设置好级联删除 这样设定好表后 可以实现删主去重 oracle为例
alter table AAA add constraint asd foreign key (BBB) references CCC(DDD) on delete cascade;
3.新增delete的行级触发器

4.存储过程 包含多条delete语句,使用时调用该过程
m我们的人的人
2018-04-16 · TA获得超过4609个赞
知道小有建树答主
回答量:25
采纳率:100%
帮助的人:3701
展开全部

DELETE FROM table WHERE date in('c','e','f')

  1. 结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;

  2. 用外键关联删除,把B表的uid设成外键关联A表的ID,并关联删除操作。

  3. 用存储过程,用事务来处理实现。

  1. 创建数据库:CREATE DATABASE database-name删除数据库

  2. drop database dbname

  3. 创建新表create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

  4. 删除新表:drop table tabname

  5. 增加一个列:Alter table tabname add column col type

  6. 添加主键:Alter table tabname add primary key(col)

  7. 删除主键:Alter table tabname drop primary key(col)

  8. 创建索引:create [unique] index idxname on tabname(col….)

  9. 删除索引:drop index idxname

  10. 创建视图:create view viewname as select statement

  11. 删除视图:drop view viewname

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
longrenyingdc8ecb1
2015-11-10 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2370万
展开全部
如果建立了主外键约束,那么这个约束是可以关联删除的(建立的时候要加一个参数,这是oracle的写法,如果你不是oracle我不清楚其他数据库能不能这样做)。
建立触发器,这个所有数据库都可以。你这里就是after delete触发,也是删除语句,这个是可以的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你猜我猜哇擦猜
2015-11-10 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2万
采纳率:0%
帮助的人:6767万
展开全部
建议你写个存储过程,我写的一个,让你参考一下!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表中删除相应的记录。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式