db2表的删除与清空 您所在的位置:网站首页 DB2删除字段 db2表的删除与清空

db2表的删除与清空

2023-09-05 00:00| 来源: 网络整理| 查看: 265

DROP TABEL 彻底删除一个表,包括表的定义。 注意: 1、drop是DDL,会隐式提交,所以,不能回滚,不会触发触发器。 2、drop语句删除表结构及所有数据,并将表所占用的空间全部释放。 3、drop语句将删除表的结构所依赖的约束,触发器,索引,依赖于该表的存储过程/函数将保留,但是变为invalid状态。

TRUNCATE TABLE 一次性地从表中删除所有的数据,并且不把单独的删除操作记录记入日志保存(即不可恢复),并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。 注意: 1.truncate的对象只能是table 2.truncate是DDL,会隐式提交,所以,不能回滚,不会触发触发器。 3.当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小。 4.对于由 FOREIGN KEY 约束引用的表,不能使用 TRUNCATE TABLE,而应使用不带 WHERE 子句的 DELETE 语句。

DELETE FROM 清除表中所有数据,并且记录日志。因为需要记录日志,因此执行速度会相对慢一些,另外要注意的是,如果表较大,为保证删除操作的成功,应考虑是否留有足够大的日志空间。 注意: 1.DELETE作为DML,每次从表中删除一行,并且同时将该行的的删除操作记录在redo和undo表空间中,以便进行回滚(rollback)和重做操作,因此表空间要足够大,需要手动提交(commit)操作才能生效,可以通过rollback撤消操作。 2.DELETE的对象可以是table也可以是view。

ALTER TABLE …ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE 以不记日志的方式清除表中的数据。这样不但提高了速度,也减少了日志的生成,并且减少了锁资源的使用。 注意: 1.这一方法仅在所操作的表在创建时选择了 NOT LOGGED INITIALLY 选项进行定义后才可使用。 2.删除的数据不可恢复。

使用 IMPORT 或 LOAD 命令

IMPORT FROM /dev/null OF DEL REPLACE INTO --(Unix 系统) 或 IMPORT FROM OF DEL REPLACE INTO LOAD FROM /dev/null OF DEL REPLACE INTO NONRECOVERABLE --(Unix 系统) 或 LOAD FROM OF DEL REPLACE INTO NONRECOVERABLE

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有