免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4996 | 回复: 6
打印 上一主题 下一主题

如何快速删除一张表里的数据? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-21 12:32 |只看该作者 |倒序浏览
informix如何快速删除表里的所有数据?不管写不写日志
像oracle中的truncate一样
谢谢大家

论坛徽章:
0
2 [报告]
发表于 2005-12-21 12:48 |只看该作者
最快的就是drop table
然后根据 dbschema的结果重新建表

论坛徽章:
0
3 [报告]
发表于 2005-12-21 12:57 |只看该作者
原帖由 大蚂蚁 于 2005-12-21 12:48 发表
最快的就是drop table
然后根据 dbschema的结果重新建表


蚂蚁的这个我也想过,
最好是不用drop表的

论坛徽章:
0
4 [报告]
发表于 2005-12-21 13:29 |只看该作者
小表可以直接 delete from tablename

大表,超过3W行的一般很难成功,长事物。

论坛徽章:
0
5 [报告]
发表于 2005-12-21 16:06 |只看该作者
版本高的可以用
TRUNCATE TABLE tablename

论坛徽章:
0
6 [报告]
发表于 2005-12-21 20:20 |只看该作者

回复 4楼 大蚂蚁 的帖子

Delete records from a big table :-
alter table TabName type ( raw ) ;  -- turn off logging for this table
drop all indexes;
begin work;
  lock table TabName in exclusive mode;  -- reduce the locking while deleting
  delete from TabName where 1=1;
commit;
alter table TabName type ( standard );
re-create all indexes;

论坛徽章:
0
7 [报告]
发表于 2005-12-22 09:52 |只看该作者
6楼的方法有点问题,应该是先drop all index再把表改成raw table
改成raw table以后也就不用begin work, lock table之类的,raw table
是不记日志的。还有就是做完以后,赶快做一次0级备份。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP