DB2清空表中数据

1. NOT LOGGED INITIALLY的使用
    ALTER TALBE 模式名(schema).表名 ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE
    说明:这个方法仅在所操作的表在创建时选择了NOT LOGGED INITIALLY选项进行定义后才可使用。整个删除操作不会记入日志中,因此执行速度是几种方法中最快的一种,但删除的数据是不可恢复的。
2. DELETE 的使用
    DELETE FROM模式名(schema).表名
    说明:该语句将清除表中所有的数据,但由于这一操作会记日志,因此执行速度相对于上一种方法要相对慢一些。另外要注意的是,如果表较大,为保证删除操作的成功,应考虑留有足够大的日志空间。
3. DROP/CREATE的使用
    DROP TABLE模式名(schema).表名
    CREATE TABLE 模式名(schema).表名 (表字段定义)
    说明:这种清除表中数据的语句,也会将表也删除,所以使用这个语句之前,先保存表的定义语句,操作的时候先保存表的定义语句,然后执行删除操作,最后建表。如果表较大,可以使用这个方法,用这种方法实现表中数据清空,其速度要比delete语句清空表中数据的速度要快一些。
4. IMPORT或LOAD的使用
    Db2 “IMPORT FROM 文件名.del(或者/dev/null) OF DEL REPLACE INTO 模式名(schema).表名”
或者Db2 “IMPORT FROM /dev/null OF DEL REPLACE INTO 模式名(schema).表名”
    Db2 “LOAD FROM文件名.del OF DEL REPLACE INTO 模式名(schema).表名 NONRECOVERABLE”
或者Db2 “LOAD FROM /dev/null OF DEL REPLACE INTO 模式名(schema).表名 NONRECOVERABLE”
    说明:这2个语句中,文件名.del为空文件,并且语句是在Unix系统中操作db2时使用。Replace导入方式会先将表中所有数据清空,然后import/load又向表中导入空数据,从而实现数据的清除操作。
    如果要实现truncate table的效果,就用IMPORT FROM 空文件的方法,用其它方法都不好。

猜你喜欢

转载自gxhong2012.iteye.com/blog/1969872