サンプル:
t=# create table s90(i int primary key, t text);
CREATE TABLE
t=# insert into s90 select 1,'a';
INSERT 0 1
t=# copy s90 from stdin delimiter ',';
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 1,'b'
>> 2,'c'
>> \.
ERROR: duplicate key value violates unique constraint "s90_pkey"
DETAIL: Key (i)=(1) already exists.
CONTEXT: COPY s90, line 1
回避方法:
t=# create table s91 as select * from s90 where false;;
SELECT 0
t=# copy s91 from stdin delimiter ',';
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 1,'b'
>> 2,'c'
>> \.
COPY 2
t=# with p as (select s91.* from s91 left outer join s90 on s90.i=s91.i where s90.i is null)
insert into s90 select * from p;
INSERT 0 1
t=# select * from s90;
i | t
---+-----
1 | a
2 | 'c'
(2 rows)
コピーがアップしていません。あなたは他のテーブルにコピーしてdiffereceを挿入することができます –
@ VaoTsunどういう意味ですか?私はどのように '挿入差異'の部分を実装するか分からない。 – user779159
しました。あなたの場合は英国ですから、 'left outer join ... where original.uk_att is null'から挿入する必要があります。異なる行(すべての列)を挿入する場合は、同様の方法で 'except'を使用してください。 –