Предположим, что этот простой запрос SQL:
INSERT INTO table (col1,col2) VALUES (val1,val2),(val3,val4),(val5,val6);
Допустим, val3
является недопустимым значением для col1
. Это приведет к тому, что psql прервет всю команду INSERT - он не вставит ни (val1,val2)
, ни (val5,val6)
.
Можно ли заставить postgresql игнорировать эту ошибку, чтобы он не вставлял пару (val3,val4)
, но продолжал бы работать с (val1,val2)
и (val5,val6)
?
Я получаю ежедневные дампы базы данных в текстовых файлах от моего партнера (не могу это изменить), которые я использую, чтобы сделать его копию. Иногда его огромные INSERT-запросы вызывают ошибки вроде:
ERROR: invalid byte sequence for encoding "UTF8": 0x00
... что делает целые 30000+ значений не вставленными в таблицу, потому что одно из этих значений неверно.