У меня есть большой файл инструкций вставки MySQL, который мне нужно отправить в базу данных.
Обычно я просто «cat $ FILE | mysql -u $ USER -p $ PASS database».
Проблема в том, что в файле иногда есть ошибки, из-за которых эта команда не выполняется.
это безопасно пропускать строки с ошибками, но нежелательно повторно отправлять одни и те же данные более одного раза.
Я написал сценарий bash, который работает, за исключением случаев, когда файл большой, это занимает слишком много времени (он удаляет каждую строку после ее обработки, поэтому прерывание сценария не приведет к повторной отправке данных, что является медленным процессом )
Почему бы вам просто не предоставить mysql параметр --force и использовать ваш cat | mysql ....
--force, -f
Continue even if an SQL error occurs.
Я считаю mysql --force говорит клиенту продолжить после ошибок