В этом заявлении SQLКак игнорировать строки, которые нарушают ограничение внешнего ключа в Postgres INSERT INTO?
INSERT INTO child (parentId, value) SELECT parentId, value FROM temptable
child.parentId
внешний ключ, ссылающийся на parent.id
. Строки в таблице parent
могут быть удалены в любое время, пока выполняется этот долговременный оператор INSERT INTO
(который может вставить до нескольких миллионов строк).
Если child
таблица не имеет соответствующего внешнего ключа в parent
перед в INSERT INTO
заявлении начинает работать, или если строка в parent
таблице ссылочного из child
был удален в то время как это INSERT INTO
бежит, я бы хотел, INSERT INTO
, чтобы молча игнорировать эту конкретную строку (и просто пропустить вставку в child
строк, которые нарушают ограничение внешнего ключа), а не весь запрос.
Как это сделать? Я не знаком с тем, как в этом случае будут работать условия гонки.