【发布时间】:2015-09-01 06:14:57
【问题描述】:
我想用 Pandas 的 to_sql 函数创建一个 MySQL 表,该函数有一个主键(在 mysql 表中有一个主键通常很好),如下所示:
group_export.to_sql(con = db, name = config.table_group_export, if_exists = 'replace', flavor = 'mysql', index = False)
但这会创建一个没有任何主键(甚至没有任何索引)的表。
文档提到参数“index_label”与“index”参数结合可用于创建索引,但没有提及任何主键选项。
【问题讨论】:
-
@unutbu 我认为
index=True只是确保将索引写入表并且它是sql中的索引,而不是主键 -
是的,索引只是使用行号作为索引,这不是我想要的。
-
目前还不支持指定主键(它在功能愿望清单上)。可能的解决方法是首先创建表,然后使用
to_sql中的“附加”选项。要创建表,pd.io.sql.get_schema可能有助于创建模式(然后可以调整/执行以创建表) -
谢谢@joris,你是对的
index=True创建索引,但不是主键。 -
@joris,尝试添加到现有表中会出现错误:“ID INT PRIMARY KEY NOT NULL”的“NOT NULL 约束失败”。 PRIMARY KEY怎么填写?
标签: python mysql pandas primary-key pandasql