gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:32:32 26 4
gpt4 key购买 nike

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

我需要 MYISAM,因为列数非常多。目前,这会导致标准数据库引擎 INNODB 出现问题(行大小太大 (> 8126))。

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

To specify explicitly that you want a MyISAM table, indicate that with an ENGINE table option: CREATE TABLE t (i INT) ENGINE = MYISAM;

我目前是这样创建表的

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

最佳答案

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

MySQL存储引擎可以在表结构创建后加入。
通过engine 连接执行 alter table 命令,您可以修改表存储引擎。

示例:

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

文档:

关于python - 在 Pandas 中使用 to_sql() 时如何显式设置数据库引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50619237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com