在oracle数据库里面,我有两个表A和B,A表中比B表多了一个Version字段,现在我想把B表中的所有记录插入到A
4个回答
展开全部
1、如果两个表相同列的顺序都一致,Version字段在表A的最后一列,那就好办了。
alter table b add(s varchar(20) default '');
insert into a select * from b;
我也很懒,所以想出了这个方法。
2、如果Version字段在中间,其它字段的顺序都一样,可以先把Version字段Drop掉,再Add上。然后按照第一种情况处理。
3、如果都不符合就只能乖乖地写字段名称了。o(∩_∩)o
alter table b add(s varchar(20) default '');
insert into a select * from b;
我也很懒,所以想出了这个方法。
2、如果Version字段在中间,其它字段的顺序都一样,可以先把Version字段Drop掉,再Add上。然后按照第一种情况处理。
3、如果都不符合就只能乖乖地写字段名称了。o(∩_∩)o
追问
好,Version字段就是在最后,擦,你太牛逼了哥
展开全部
用客户端工具,比如pl/sql打开B表,选中所有行,Ctrl+C,然后打开excel,Ctrl+V。再在最后一列补上version值,如果都一样可以一拖到底。。。,再选中这些数据,打开A表,选中新行,Ctrl+V搞定。
INSERT INTO A
(id,
........,
Version)
SELECT id,
.......,
'new version'
FROM B
INSERT INTO A
(id,
........,
Version)
SELECT id,
.......,
'new version'
FROM B
更多追问追答
追问
这个是可行的,但是这个还能再简化一点吗,例如像sqlserver里这样:
insert into A select *,version='111' from B
追答
这个没试过,估计应该可以,你可以自己试一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上的回答是正确的,楼主可以把表结构及用到的表贴出来看看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
补一个空字段,比如 '', null放在version位置即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询