DataFrame.to_sql()
está ejecutando la siguiente consulta:
SHOW FULL TABLES FROM `db`
Al usar pandas.DataFrame
con sqlalchemy
para insertar en una base de datos MariaDB. ¿Cómo evito que esto suceda?
No he encontrado ninguna referencia a esto en los documentos o en SO:
Versions: Python: 3.7.4 sqlalchemy: 1.3.4 pandas: 1.0.3
Reproducir:
from pandas import DataFrame import sqlalchemy as sql import logging logging.basicConfig() logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO) conn = sql.create_engine('mysql://root@127.0.0.1:3306/db') df = DataFrame([{ 'colA': 11, 'colB': 'this is a thing', }]) df.to_sql('TableA', conn, index=False)
Producción:
... INFO:sqlalchemy.engine.base.Engine:() INFO:sqlalchemy.engine.base.Engine:COMMIT INFO:sqlalchemy.engine.base.Engine:BEGIN (implicit) INFO:sqlalchemy.engine.base.Engine:INSERT INTO `TableA` (`colA`, `colB`) VALUES (%s, %s) INFO:sqlalchemy.engine.base.Engine:(11, 'this is a thing') INFO:sqlalchemy.engine.base.Engine:COMMIT INFO:sqlalchemy.engine.base.Engine:SHOW FULL TABLES FROM `db` <!-- REMOVE THIS ? INFO:sqlalchemy.engine.base.Engine:()