如何在pandas中使用to_sql()时显式设置数据库引擎

时间:2018-05-31 07:46:01

标签: python mysql pandas

我怎么可能在pandas to_sql()函数中修补sql语句,所以新创建的表使用了MYISAM存储引擎?

由于列数很多,我需要MYISAM。这当前导致标准数据库引擎INNODB的问题(行大小太大(> 8126)。

我知道可以在创建表时在mysql语句中显式设置数据库引擎。也许可以修补由to_sql()函数生成的sql?

  

要明确指定您需要MyISAM表,请使用ENGINE表选项指示:CREATE TABLE t(i INT)ENGINE = MYISAM;

这就是我目前创建表格的方式

df.to_sql(con=engine, name="generated_" + reportConfiguration.shortName + "_" + reportConfiguration.marketplace, if_exists='replace',index=False)

1 个答案:

答案 0 :(得分:0)

据我所知,无法使用df.to_sqlengine = create_engine('mysql+pymy....://x@y/z')设置 MySQL 存储引擎

MySQL存储引擎一旦创建就可以添加到表结构中 通过executing连接alter table engine命令,您可以修改表存储引擎。

示例

with engine.begin() as conn:     
      conn.execute("ALTER TABLE table_name ENGINE = MYISAM")

文档