DataFrame.to_sql()
is executing the following query:
SHOW FULL TABLES FROM `db`
When using pandas.DataFrame
with sqlalchemy
to insert into a MariaDB database. How do I prevent this from happening?
I haven't found any references to this in the docs or on SO:
Versions:
Python: 3.7.4
sqlalchemy: 1.3.4
pandas: 1.0.3
To reproduce:
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)
Output:
...
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:()