社区
MS-SQL Server
帖子详情
表里创建有外键,现想删掉某些表的大部分数据,怎么做比较好?
chongworm
2003-11-17 12:23:57
一个数据库有几百个表,有很多表相互之间是通过外键关联的,现在因为有些表的数据量很大,所以想把这些表中的大部分数据清掉,只留少数几条记录作样板,但是如果采用一个表一个表清除的方法,若某个表和其他表有外键联系,则系统会弹出提示,并且不让删。请问有什么方法能达到目的?请各位高手详细指点,先谢了!
...全文
72
5
打赏
收藏
表里创建有外键,现想删掉某些表的大部分数据,怎么做比较好?
一个数据库有几百个表,有很多表相互之间是通过外键关联的,现在因为有些表的数据量很大,所以想把这些表中的大部分数据清掉,只留少数几条记录作样板,但是如果采用一个表一个表清除的方法,若某个表和其他表有外键联系,则系统会弹出提示,并且不让删。请问有什么方法能达到目的?请各位高手详细指点,先谢了!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lynx1111
2003-11-17
打赏
举报
回复
设置级联删除
sunshareforever
2003-11-17
打赏
举报
回复
可以采用触发器完成。
lvltt
2003-11-17
打赏
举报
回复
设置级联删除,具体看联机帮助
shuiniu
2003-11-17
打赏
举报
回复
表已经建好的,可用下面的增加!
alter table 从表 add constraint 外键名 foreign key(从表字段)
references 主表(主表字段) on delete cascade
shuiniu
2003-11-17
打赏
举报
回复
--例如
create table zb --主表
(
zb_id int primary key,
)
go
create table cb --从表
(
mx_id int primary key
FOREIGN KEY REFERENCES zb(zb_id)ON DELETE CASCADE , --指定级联删除
)
go
--主表数据
insert zb values(1)
insert zb values(2)
insert zb values(3)
--从表数据
insert cb values(1)
insert cb values(2)
insert cb values(3)
select * from zb
select * from cb
zb_id
-----------
1
2
3
(所影响的行数为 3 行)
mx_id
-----------
1
2
3
(所影响的行数为 3 行)
--级联删除
delete from zb where zb_id = 1
select * from zb
select * from cb
zb_id
-----------
2
3
(所影响的行数为 2 行)
mx_id
-----------
2
3
(所影响的行数为 2 行)
为什么
表
数据
删掉
一半,
表
文件大小不变?
这种标记删除的方式带来了一些优势,比如快速删除操作,以及可能会在后续插入操作中复用这些标记删除的空间。:如果
数据
页的使用率下降到一定程度(比如删除了
大部分
记录),InnoDB 可能会将这个
数据
页中的剩余记录移动到相邻页中,然后将该
数据
页标记为空闲页。每个
数据
页有固定的大小,页内存储
数据
记录。:InnoDB 的
数据
存储在 B+ 树的结构中,
数据
页(
数据
存储的基本单位)即使被完全腾空,也不会立刻释放。这意味着如果你在
表
中插入新的记录,系统会尝试将它们填充到先前删除的
数据
位置上,而不立即分配新的空间。
Doris建
表
避坑指南:模型选型、分区分桶与排序键实战
在
数据
仓库与OLAP场景中,
表
结构设计直接决定查询性能、存储成本和运维复杂度。许多团队在建
表
初期只关注业务字段,却忽视了
数据
模型、分区策略、分桶规则以及排序键等底层机制对后续
数据
变更和查询效率的深远影响。Doris作为一款高性能分析型
数据
库,其建
表
阶段包含多个关键决策点:Duplicate、Aggregate、Unique三种
数据
模型分别适用于明细追加、预聚合与主键更新;分区用于
数据
生命周期管理和查询裁剪,分桶则影响
数据
分布与查询并发;排序键通过前缀索引加速过滤,但受36字节限制。理解这些原理,能够帮助工程
Ruby Hash删除键后内存不降?一文搞懂桶
表
收缩与重建
内存管理是服务端开发和
数据
处理脚本中不可回避的课题。在Ruby中,Hash是最高频使用的容器之一,但许多开发者只关注其键值对的增删改查,却忽略了底层存储结构的容量变化。当Hash中的键被大量删除时,size虽已减小,底层桶
表
却可能依然保留了扩容后的规模,导致进程RSS居高不下,内存无法及时归还操作系统。这种现象在长驻服务、批量任务和内存受限环境中尤为明显。要解决该问题,需要理解Hash内部桶
表
、负载因子和GC回收机制。通过遍历重建或select生成新Hash,可以有效缩小桶
表
并释放内存。本文还对比了reha
Mysql大
表
加索引
最近大后台查看一些
数据
统计的时候,很慢,甚至会有超时情况,前端设置的超时时间是20秒。 后来通过查看日志和慢查询,发现一条sql语句执行时间超过18秒,基本都19秒左右。 大
表
加索引 select (*) from tb_name where create_time > xxx; 最终得知是因为这个
表
数据
行数已经超过 一千万了,然后create_time字段又没有索引 。 那解决办法肯定是加索引喽。 但是这个
表
是一直在线上运行,很重要和业务部分。如果给千万级的大
表
在线加索引 ,肯定会卡...
mysql给大
表
增加索引
链
表
指定部分反转
MS-SQL Server
34,876
社区成员
254,635
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章