テーブルからデータを選択して別のテーブルに挿入することで、データを更新しています。ただし、他のテーブルにはいくつかの制約があり、次のようになります。
DETAIL: Key (entry_id)=(391) is duplicated.
私は基本的にこれを行います:
insert into table_tmp
select * from table_one
このキー エントリの重複が発生したときに挿入をスキップするにはどうすればよいですか?
更新 SQLフィドルでこのスキーマ情報を保存できませんが、ここにあります:
CREATE TABLE table1
("entry_id" int, "text" varchar(255))
;
INSERT INTO table1
("entry_id", "text")
VALUES
(1, 'one'),
(2, 'two'),
(3, 'test'),
(3, 'test'),
(12, 'three'),
(13, 'four')
;
CREATE TABLE table2
("entry_id" int, "text" varchar(255))
;
Create unique index entry_id_idxs
on table2 (entry_id)
where text='test';
INSERT INTO table2
("entry_id", "text")
VALUES
(1, 'one'),
(2, 'two'),
(3, 'test'),
(3, 'test'),
(12, 'three'),
(13, 'four')
;
スキーマを構築しようとすると発生するエラー