中易网

数据库,数据库sql命令,删除多表关联索引数据

答案:3  悬赏:40  
解决时间 2021-02-12 19:05
数据库,数据库sql命令,删除多表关联索引数据
最佳答案
这么个问题,要写好多语句的,都没有分的。

首先,你的表肯定是做了外键等约束的,所以删除,要从最外层删除。假设你的数据库是Sql Server的。

1、技能表
delete from 技能表 where 人物id in (select 人物id from 人物表 where 账号id in (select 账号id from 账号表 where datediff(day,上次登录时间lasttime,getdate())>=3))

2、装备属性表
delete from 装备属性表 where 装备id in (select 装备id from 装备表 where 人物id in (select 人物id from 人物表 where 账号id in (select 账号id from 账号表 where datediff(day,上次登录时间lasttime,getdate())>=3)))

3、装备表
delete from 装备表 where 人物id in (select 人物id from 人物表 where 账号id in (select 账号id from 账号表 where datediff(day,上次登录时间lasttime,getdate())>=3))

4、人物表
delete from 人物表 where 账号id in (select 账号id from 账号表 where datediff(day,上次登录时间lasttime,getdate())>=3)

5、账号表
delete from 账号表 where datediff(day,上次登录时间lasttime,getdate())>=3
全部回答
第一步:查看是否需要维护,查看扫描密度/scan density是否为100% declare @table_id int set @table_id=object_id('表名') dbcc showcontig(@table_id) 第二步:重构表索引 dbcc dbreindex('表名',pk_索引名,100) 重做第一步,如发现扫描密度/scan density还是小于100%则重构表的所有索引 dbcc dbreindex('表名','',100)
按楼上的说得,不过在最后改下,只要删除账号表,然后在后面加个cascade,它表示级联删除,就是和要删除的账号表上的账号有关联的都会删除,不过事先你先得将表的关联建好:人物表中的 账号id 要引用 账号表的 账号id 就是外键的意思,下面的表类似。写 sql 就可以这样写 delete from 账号表 where time()-lasttime>3*12*3600 cascade
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
苹果7没有耳机线怎么录全民K歌
兴港路/北京街(路口)地址在哪,我要去那里办
最早的多炮塔坦克是哪一辆?FCM Char2c还是维
祖国这么强大了,董卿为什么还要去美国生孩子
再有wifi的地方wifi打不开显示不可使用是怎么
中新药业金牛区金群药房这个地址在什么地方,
现在的闲时流量可以累积到下个月吗?
暗黑破坏神2大箱子安装后进不了游戏了,是我
假设5只猫在5分钟内可以捉5只老鼠,在一百分
just play什么意思
洛克王国帕尔萨斯蛋能通过打帕尔萨斯来获得吗
张家口鑫盛环保科技有限公司地址在哪,我要去
and this is the study是什么意思?
空调电源插头插到插座上嗡嗡响什么原因
蹦沙卡拉卡就是bigbang歌里的
推荐资讯
强制猥亵罪得以对方谅解并写了调解书法院能轻
腹透可以吃毛豆吗
EMS的快递单和信封是否收费?
欧派床上用品我想知道这个在什么地方
正式工作闲的时候太多了,想多学点东西,大家
邮政储蓄信用卡能办ETC业务吗
什么时候do you know可以用I didn't kno
汕头峡山到浙江宁波 佳吉货运需要多少钱啊?大
我今天在农行买一分保险叫国华华润年年两全保
神之墓地凤姐版的密码
我在广州Hifi商行买的42,便用了两三个月中低
如何自己晒杏干
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?