Предположим, этот простой 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+ значений не вставленными в таблицу, потому что одно из этих значений неверно.