如何将一张数据表中的数据剪切到另外一张结构相同的表中 现在需要将一张数据表中的数据复制到另外一张表中,但是在复制的过程中源表有可能增加新的数据,因此以查询、插入、删除的顺序进行操作的话有可能会删除新加进来的数据,然后以打标记的方式则会降低数据处理的效率。是否有方法能够以剪切的方式来进行操作。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 删除数据的时候可以这样实现(a 源表,b 目标表):delete from a where exists ( select 1 from a.id = b.id and 其他的条件)也就是只删除已经copy到目标表中的数据. 假如想用程序的方式,我想,只有先LOCK了表,然后自己操作了。就算是剪切,你想,要是你出现的问题还是有,中途有人更新的话,你还不是一样,复制不到最新的数据?假如你复制的途中,有人更新的话,你想实现什么呢?更新的程序报错?更新的程序不报错?可以更新?那你的程序干什么呢?数据都被你移走了,他还更新什么呀。这个问题的出发点,都有问题。赫赫。INSERT INTO .... SELECT .....这个句子,是不是可以完成你想要得类似的功能?这样的话,可以做到数据的行锁定,其他程序更新不了的。看你到底想要什么了。 这里还有几点要说明一下1、源表只会有新增操作,不会出现更新的情况。2、另外1楼所说的select 1 是什么意思?并且目标表中不仅仅有此次操作的数据,还包含其他的数据。3、3楼并没有明白我所需要的。4、2楼所说的锁定数据表会不会对源表产生什么不良的影响? 或者有没有办法查询已经执行了删除sql但是没有提交的数据 1楼的就可以解决你的问题SELECT 1 和SELECT * 都一样EXISTS 做的是行判断而不是列判断1楼是意思是说只要源表中的记录在目标表中存在就把源表中的数据删除,这样就达到了剪切的效果 不懂oracle,想学oracle,从什么开始学 两张表字段不同可否复制数据 oracle存储过程,IN OUT 类型的参数怎么传参数啊 真心求教oracle 自定义函数返回值问题 Oracle 写文件总是出错 触发器编译问题 对于view与table之间的效率问题?? sql*plus登录问题??? 如何将查询数据库中的结果输出到文本? SQL的优化(转) 连接串有怎么用sys登录呢? 求判断一张表中两个字段是否互相存在引用值的SQL
delete from a
where exists ( select 1
from a.id = b.id
and 其他的条件)
也就是只删除已经copy到目标表中的数据.
INSERT INTO .... SELECT .....
这个句子,是不是可以完成你想要得类似的功能?这样的话,可以做到数据的行锁定,其他程序更新不了的。看你到底想要什么了。
1、源表只会有新增操作,不会出现更新的情况。
2、另外1楼所说的select 1 是什么意思?并且目标表中不仅仅有此次操作的数据,还包含其他的数据。
3、3楼并没有明白我所需要的。
4、2楼所说的锁定数据表会不会对源表产生什么不良的影响?
SELECT 1 和SELECT * 都一样
EXISTS 做的是行判断而不是列判断
1楼是意思是说只要源表中的记录在目标表中存在就把源表中的数据删除,这样就达到了剪切的效果