将数据从一个模式插入另一个模式

时间:2013-01-30 13:49:59

标签: oracle oracle10g

我在单个数据库中有两个模式。

  • rxdata(一个新的架构)

  • fbdata

表名 - kostst(成本中心)

列名 - kst_id(成本中心ID)

列名 - kst_name(成本中心名称)

我想将表格kostst中的所有数据从rxdata插入到kostst.fbdata。 当我执行下面的命令时,我得到了这个,我知道两个模式中存在类似的ID(kst_id = 1& 2)

SQL> insert into rxdata.kostst select * from fbdata.kostst;

insert into rxdata.kostst select * from fbdata.kostst
*

ERROR at line 1:
ORA-00001: unique constraint (RXDATA.SYS_C0070558) violated

SQL> select table_name,column_name from user_cons_columns where constraint_name=
'SYS_C0070558';

TABLE_NAME    COLUMN_NAME
------------  ------------
KOSTST        KST_ID

1 个答案:

答案 0 :(得分:0)

如果只想插入不存在的行,可以使用:

insert into rxdata.kostst 
select * 
  from fbdata.kostst f
 where not exists (select null
                     from rxdata.kostst r
                    where r.kst_id = f.kst_id)

如果您想完全替换表R的表格F,我建议改为TRUNCATE+INSERTDELETE+INSERT