0

1 つのデータベースに 2 つのスキーマがあります。

  • 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
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+INSERTDELETE+INSERT

于 2013-01-30T13:56:01.203 に答える