Как создать сценарий массовой загрузки MySQL в Linux

0

У меня есть datbase mysql с таблицами, которые имеют те же имена столбцов, что и файлы csv, которые я получаю. Раньше я использовал пакетный файл Windows для загрузки в mysql.

@echo off
echo TRUNCATE TABLE `alarms`; > importalarm.sql
echo Creating list of MySQL import commands
for %%s in (*.csv) do 
  echo LOAD DATA LOCAL INFILE '%%s' INTO TABLE `alarms` 
       FIELDS TERMINATED BY ',' ENCLOSED BY ' ' 
       ESCAPED BY '/'LINES TERMINATED BY '\r\n' IGNORE 1 LINES; >> importcsv.sql;
echo mysql -u root -p uninetscan < importalarm.sql

Мне нужно превратить это в linux script.

Любые идеи.

  • 0
    Можете ли вы отформатировать сценарий?
Теги:
csv
batch-processing

1 ответ

1
Лучший ответ

Вот как вы могли бы сделать что-то подобное в linux:

#!/bin/bash
echo 'TRUNCATE TABLE `alarms`;' > importalarm.sql
echo "Creating list of MySQL import commands"
for f in *.csv; do
    echo "LOAD DATA LOCAL INFILE '$f' INTO TABLE \`alarms\` FILEDS TERMINATED BY ',' ENCLOSED BY ' ' ESCAPED BY '/' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;" >> importcsv.sql;
done
echo 'mysql -u root -p uninetscan < importalarms.sql'

Я заметил, что вы отправляете вывод в 2 файла (importalarm.sql и importcsv.sql), не уверен, что это то, что вы хотите, но это очень легко изменить. Кроме того, последняя строка просто отражает команду, а не выполняет ее. Если вы хотите выполнить его, просто удалите эхо и кавычки.

  • 0
    извините орфографическая ошибка
  • 0
    круто работал как шарм. Спасибо действительно образование.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню