У меня написан файл сценария оболочки (.sh), и он сохраняет результат запроса SQL в файл.
Результаты файла SQL необходимо конвертировать в запросы INSERT.
В запросе SQL есть три столбца, и они записаны в файл с помощью следующей команды
mysql -u$db_user -p -h 127.0.0.1 -P 3308 < my_query.sql > my_results_into_file
Теперь я делаю некоторые манипуляции с файлом my_results_into_file
sed -i.bak -e $'s/\t/\x27,\x27/g' my_results_into_file # replace tabs in output with commas, add single quotes around values
sed -i.bak -e '1d' my_results_into_file # remove first line from the file (column names)
sed -i.bak -e $'s/^/INSERT INTO mytable(column1, column2, column3) VALUES(\x27/' my_results_into_file # build inserts
sed -i.bak -e $'s/$/\x27);/' my_results_into_file # build inserts
Приведенный выше сценарий приводит к проблеме, потому что в запросе есть столбец NULLABLE, и он может содержать NULL, что приведет к тому, что значение NULL будет заключено в одинарную кавычку и будет обработано как NULL и является строкой.
Есть ли способ, которым в одном из сценариев я могу избежать размещения одинарных кавычек вокруг NULL ???