Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2880809
  • 博文数量: 599
  • 博客积分: 16398
  • 博客等级: 上将
  • 技术积分: 6875
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-30 12:04
个人简介

WINDOWS下的程序员出身,偶尔也写一些linux平台下小程序, 后转行数据库行业,专注于ORACLE和DB2的运维和优化。 同时也是ios移动开发者。欢迎志同道合的朋友一起研究技术。 数据库技术交流群:58308065,23618606

文章分类

全部博文(599)

文章存档

2014年(12)

2013年(56)

2012年(199)

2011年(105)

2010年(128)

2009年(99)

分类: DB2/Informix

2011-11-22 20:41:21

对于使用DB2数据库的用户而言,有时候需要将表中数据清空。这里提供了4种数据删除的方法,以供用户根据自己的需求进行选择:

使用DELETE语句,即:  

DELETE FROM <表名

该语句将清除表中所有数据,但由于这一操作会记日志,因此执行速度会相对慢一些。另外要注意的是,如果表较大,那么为保证删除操作的成功,应考虑是否留有足够大的日志空间。

使用NOT LOGGED INITIALLY选项,即:

ALTER TABLE <表名> ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE 

这一方法仅在所操作的表在创建时选择了NOT LOGGED INITIALLY选项进行定义后才可使用。整个删除操作将不会记日志,因此执行速度是这4种方法中最快的一种,但删除的数据是不可恢复的。

使用LOAD命令,即:

LOAD FROM /dev/null OF DEL REPLACE INTO <表名> NONRECOVERABLE --(UNIX 系统 

LOAD FROM <空文件> OF DEL REPLACE INTO <表名> NONRECOVERABLE

在这一方法中,REPLACE导入方式首先会将表中所有数据清空,然后IMPORT/LOAD又向表中导入了空数据,从而实现了数据的清除操作。

使用DROP/CREATE TABLE语句,即:

DROP TABLE <表名>  

CREATE TABLE <表名> <字段的定义

如果保存有表的定义语句,或已利用DB2LOOK命令获得了表定义的脚本,那么也可先删除整个表,再重新创建表。如果表较大,那么用这种方法实现数据清空的速度会快于使用DELETE语句。但是用这种方法时要注意:如果这个表上有很多外键,那么需要维护外键的完整性。

阅读(3185) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~