我如何才能修补pandas to_sql()函数中的sql语句,以便新创建的表使用MYISAM存储引擎?
我需要MYISAM,因为有大量的列。这目前会导致标准数据库引擎INNODB出现问题(行太大(> 8126)。
我知道在创建表时,可以在mysql语句中显式设置数据库引擎。也许可以修补由to_sql()函数生成的sql?
要显式指定需要MyISAM表,请使用引擎表选项指明: CREATE table t( INT) ENGINE = MYISAM;
这就是我目前创建这个表的方式
df.to_sql(con=engine, name="generated_" + reportConfiguration.shortName + "_" + reportConfiguration.marketplace, if_exists='replace',index=False)
发布于 2018-05-31 17:43:19
据我所知,不能使用df.to_sql
或engine = create_engine('mysql+pymy....://x@y/z')
来设置MySQL的存储引擎。
创建MySQL存储引擎后,可以将其添加到表结构中。
通过engine
连接executing
alter table
命令,您可以修改表存储引擎。
示例:
with engine.begin() as conn:
conn.execute("ALTER TABLE table_name ENGINE = MYISAM")
Documentation:
https://stackoverflow.com/questions/50619237
复制相似问题