急问,如何在存储过程中删除一个表的纪录快一点? 最好是不写日志!

Auto_And_Elec 2003-10-08 09:59:10
IBM DB2 V7.2, Sun Solaris

我希望在存储过程中删除一个表的部分纪录,但是删除的数据量比较大,会有几十万条,所以会导致数据库的日志满.
如是我采用在建表的时候Not log init之类的(具体写法我要查帮助),然后在删数据之前我关闭日志,本来在CLP中是可以的,可是在存储过程中却无法通过编译?


这可如何是好啊!!!!!

有什么好办法清各位大虾提示
...全文
126 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zipuzhou 2003-10-16
  • 打赏
  • 举报
回复
在sql存储过程中用动态语句
set stm='alter table 表名 activate not logged initially with empty table'
execute immediate stm;
semite 2003-10-15
  • 打赏
  • 举报
回复
直接运行
db2 "alter table <tablename> activate not logged initially with empty table"
直接删除表,不写日志
但也不可以恢复
lxyhj 2003-10-15
  • 打赏
  • 举报
回复
1。建一个表。
2。把步需要删除的数据导入到新建的表中。
3。清空原来的表数据
4。把备份在新建的表中的数据导入到原表中
Auto_And_Elec 2003-10-11
  • 打赏
  • 举报
回复
To bigddaddy(隐者)

你的方法不可行,因为并不想把数据全部删除,Drop表的办法会把数据全部删除

To wdhs(苍穹·一骑)
你的办法是CLP命令,在存储过程中无法使用的
wdhs 2003-10-10
  • 打赏
  • 举报
回复
CREATE TABLE T1
(...)
NOT LOGGED INITIALLY;
~~~~~~~~~~~~~~~~~~~~

ALTER TABLE T1
ACTIVATE NOT LAGGED INITIALLY;
wdhs 2003-10-09
  • 打赏
  • 举报
回复
mark

我也想知道

bigddaddy(隐者):你的方法相当于 truncate 吧?
bigddaddy 2003-10-09
  • 打赏
  • 举报
回复
1、复制表结构
2、drop表
3、更改表名

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧