Как эмулировать "вставить игнорировать" и "при обновлении дубликата ключа" (объединение SQL) с postgresql? - PullRequest
122 голосов
/ 18 июня 2009

Некоторые серверы SQL имеют функцию, при которой INSERT пропускается, если это нарушает ограничение первичного / уникального ключа. Например, MySQL имеет INSERT IGNORE.

Какой лучший способ эмулировать INSERT IGNORE и ON DUPLICATE KEY UPDATE с PostgreSQL?

Ответы [ 11 ]

0 голосов
/ 09 августа 2013

Для сценариев импорта данных, заменить «ЕСЛИ НЕ СУЩЕСТВУЕТ», в некотором смысле, есть немного неловкая формулировка, которая тем не менее работает:

DO
$do$
BEGIN
PERFORM id
FROM whatever_table;

IF NOT FOUND THEN
-- INSERT stuff
END IF;
END
$do$;
...