У меня есть следующий контент в моем CSV-файле (с 3 столбцами):
141413,"\"'/x=/></script></title><x><x/","Mountain View, CA\"'/x=/></script></title><x><x/"
148443,"CLICK LINK BELOW TO ENTER^^^^^^^^^^^^^^","model\
\
xxx lipsum as it is\
\
100 sometimes unknown\
\
travel evening market\
"
Когда я импортирую вышеупомянутый csv в mysql, используя следующую команду, он обрабатывает обратную косую черту () как новую строку; что является ожидаемым поведением.
LOAD DATA INFILE '1.csv' INTO TABLE users FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n';
Но когда я пытаюсь импортировать в psql с помощью команды копирования, он воспринимает \ как обычный символ.
copy users from '1.csv' WITH (FORMAT csv, DELIMITER ',', ENCODING 'utf8', NULL "\N", QUOTE E'\"', ESCAPE '\');
ESCAPE
определяет символ, который экранирует символ кавычки, он не имеет ничего общего с многострочными записями. Многострочные записи обнаруживаются автоматически, если значение указано правильно (в режиме CSV). Нужно убрать бэклеш из входного файла (вообще бэклеш не имеет значения в SQL) - person a_horse_with_no_name   schedule 13.06.2018