Может быть проблематично использовать строки в двойных кавычках в SQL, так как вы используете двойные кавычки в качестве разделителя строк в bash. Другими словами, что является двойной кавычкой, заканчивающей строку bash, и которая должна рассматриваться как буквальный символ двойной кавычки в SQL?
. Чтобы решить эту проблему, используйте одинарные кавычки для разделителей строк в SQL.
Еще одна проблема: нет необходимости ставить бэкслу sh перед ,
для ограничителя поля.
Другая проблема: \n
нужен другой backsla sh.
Вот что я пробовал, и похоже, что оно работает:
qry="DROP TABLE IF EXISTS tmp_x;
CREATE TEMPORARY TABLE tmp_x AS SELECT * FROM x.y LIMIT 0;
LOAD DATA INFILE 'path/xxx.csv'
INTO TABLE tmp_x
FIELDS TERMINATED BY ','
ENCLOSED BY '\"'
LINES TERMINATED BY '\\\n'
IGNORE 1 ROWS;"
Я только напечатал запрос, я не проверял его выполнение.