У меня есть файл .sql, содержащий кучу SQL-запросов, каждый из которых занимает несколько строк. Я хочу выполнять эти запросы в MySQL через Python, используя MySQLdb
.
sqlite3
имеет «нестандартный ярлык» для этой цели, называемый executescript()
, но похоже, что в MySQLdb
нет эквивалентной функции.
Я заметил этот старый вопрос 2 года назад, который задавал то же самое, но ответы меня не удовлетворили.Ответы в основном таковы:
Используйте подпроцесс
, чтобы запустить команду
mysql
и отправить ей свой файл .sql.
Это работает, но довольно неэлегантно и вносит нежелательную сложность с обработкой ошибок и т.п.
Если каждый запрос находится в одной строке, просто выполняйте каждую строку отдельно.
Но в моем случае они охватывают несколько строк, так что это не сработает.
Если каждый запрос не находится на одной строке, каким-то образом соедините их.
Но как? Я имею в виду, что я могу достаточно легко взломать что-то, поэтому вам не нужно отвечать недоработанными ответами здесь, и, возможно, это то, что я в конечном итоге сделаю, но есть ли уже установленная библиотека, которая делает это? Я бы чувствовал себя более комфортно с комплексным и правильным решением, а не с хаком.