0

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

  • rxdata(它是一个新的模式)

  • 数据

表名 - kostst(成本中心)

列名 - kst_id(成本中心 ID)

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

我想将表中的整个数据从kostst插入rxdatakostst.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
4

1 回答 1

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+INSERTor DELETE+INSERT

于 2013-01-30T13:56:01.203 回答