在Pandas to_sql中指定模式

时间:2015-06-23 05:45:07

标签: python mysql pandas sqlalchemy

to_sql的来源,我可以看到它被映射到元数据对象meta = MetaData(con, schema=schema)。但是,我无法找到告诉我如何为MySQL定义Schema的SQLAlchemy文档

如何指定架构字符串?

3 个答案:

答案 0 :(得分:1)

PID

只需使用schema parameter。但是请注意,架构不是odbc驱动程序。

答案 1 :(得分:0)

to_sql中的schema参数令人困惑,因为“ schema”一词的含义不同于“表定义”的一般含义。在某些SQL风格中,尤其是在postgresql中,模式实际上是一组表的名称空间。

例如,您可能有两种模式,一种称为test,另一种称为prod。每个表都可能包含一个由熊猫生成并使用user_rankings命令编写的名为to_sql的表。在改善用户排名时,您将指定test模式。准备部署新排名时,您将写入prod模式。

就像其他人提到的那样,当您调用to_sql时,表定义是根据数据帧中每一列的类型信息生成的。如果该表已经存在于结构完全相同的数据库中,则可以使用append选项将新数据添加到表中。

答案 2 :(得分:-3)

从SQLAlchemy文档的Dialects页面开始,选择方言的文档页面并搜索create_engine以查找有关如何创建方法的示例。

更简洁的概述,您可以在Engine Configuration页面上获取所有支持的方言。

mysql的逐字摘录:

# default
engine = create_engine('mysql://scott:tiger@localhost/foo')

# mysql-python
engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

# MySQL-connector-python
engine = create_engine('mysql+mysqlconnector://scott:tiger@localhost/foo')

# OurSQL
engine = create_engine('mysql+oursql://scott:tiger@localhost/foo')

然后将此engine传递给大熊猫的to_sql(...)'数据帧。