首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > IBM DB2 >

!DB2从A表插入数据到B表

2012-02-23 
求救!DB2从A表插入数据到B表在同一个数据库中将表s_link_data(230万行)中的数据选择(140万行)插入到s_link

求救!DB2从A表插入数据到B表
在同一个数据库中将表s_link_data(230万行)中的数据选择(140万行)插入到s_link(90万行)中去,如何快速操作!
数据量太大,会提示数据库日志已满!可利用字段分批导入查出来都是10几万的记录,我写的语句如下

SQL code
insert into S_LINK(ID,C_USERTABLE_ID,C_RECID,C_FILENAME,C_FILETITLE,C_TYPE,I_SIZE, C_UPLOADUSER_ID,D_UPLOADDATE,C_FTPHTTP_ID, C_GUIDNAME,I_ORDER,I_INDEX,C_SOURCE,C_LSSJ )select ID,C_USERTABLE_ID,C_RECID,C_FILENAME,C_FILETITLE,C_TYPE,I_SIZE, C_UPLOADUSER_ID,D_UPLOADDATE,C_FTPHTTP_ID, C_GUIDNAME,I_ORDER,I_INDEX,C_SOURCE,'1'from s_link_data where s_link_data.id not in(select id from s_link)


请问需要如何修改,才能在短时间内结束呢?
数据库版本DB2 V9

[解决办法]
你先导出,然后再装载,这样会很快的,只记录少量的日志
[解决办法]
你先导出,然后再装载,这样会很快的,只记录少量的日志
[解决办法]
用not exists实现

或者先导出在导入,可以5000条一提交。。。
[解决办法]
那说明你分批的条件不对。重新写条件,或者另寻思路,比如导出导入。
[解决办法]
你参考以下楼上的意见,试试吧
[解决办法]
数据量太大,会提示数据库日志已满!
如果这样,只能分批导入。加些条件吧。
[解决办法]
用export 和load。
[解决办法]
可以用load cursor的方法嘛!
db2 declare cur1 cursor for select * from A with ur
db2 load from cur1 of cursor insert into b statistics yes nonrecoverable
具体列按照你需要的来就行了

热点排行