Tengo un archivo .sql que contiene un conjunto de consultas SQL, con cada consulta abarcando varias líneas. Quiero ejecutar estas consultas en MySQL a través de Python usando MySQLdb
.Ejecutar archivo .sql en Python con MySQLdb
sqlite3
has "a nonstandard shortcut" for this purpose called executescript()
, pero no parece haber ninguna función equivalente en MySQLdb
.
Me di cuenta de this old question from 2 years ago que pregunta lo mismo, pero encontré las respuestas insatisfactorias. Las respuestas son básicamente:
Uso
subprocess
para ejecutar el comandomysql
y lo envía su archivo .sql.
Esto funciona, pero es bastante poco elegante, y presenta complejidad no deseada con el manejo de errores y tal.
Si cada consulta está en una sola línea, simplemente ejecute cada línea por separado.
Pero en mi caso, abarcan varias líneas, por lo que esto no funcionará.
Si cada consulta no está en una sola línea, únelas de algún modo.
Pero, ¿cómo? Quiero decir, puedo hackear algo con bastante facilidad, así que no hay necesidad de que respondas con respuestas a medias aquí, y tal vez eso es lo que terminaré haciendo, pero ¿ya existe una biblioteca establecida que hace esto? Me sentiría más cómodo con una solución integral y correcta en lugar de un truco.
que había presentado una respuesta que invovled analizar el archivo y creación de las consultas, pero creo que eso es lo que quería decir con "un truco", así que lo eliminé. – acattle