我怎么可能在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)
答案 0 :(得分:0)
据我所知,无法使用df.to_sql
或engine = 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")
文档: