![](/img/trans.png)
[英]python pandas with to_sql() , SQLAlchemy and schema in exasol
[英]Specifying the schema in Pandas to_sql
從to_sql的來源,我可以看到它被映射到一個元數據對象meta = MetaData(con, schema=schema)
。 但是,我找不到告訴我如何為 MySQL 定義架構的 SQLAlchemy 文檔
如何指定架構字符串?
to_sql
的架構參數令人困惑,因為“架構”一詞的含義與“表定義”的一般含義不同。 在某些 SQL 風格中,特別是 postgresql,模式實際上是一組表的命名空間。
例如,您可能有兩種模式,一種稱為test
,一種稱為prod
。 每個可能包含一個名為user_rankings
的表,在 pandas 中生成並使用to_sql
命令編寫。 您將在改進用戶排名時指定test
模式。 當您准備好部署新排名時,您將寫入prod
模式。
正如其他人所提到的,當您調用to_sql
,表定義是根據數據to_sql
每一列的類型信息生成的。 如果數據庫中已經存在具有完全相同結構的表,則可以使用append
選項向表中添加新數據。
DataFrame.to_sql(self, name, con, schema=None, if_exists='fail', index=True, index_label=None, chunksize=None, dtype=None, method=None)
只需使用架構參數。 但請注意,架構不是 odbc 驅動程序。
從 SQLAlchemy 文檔的方言頁面開始,選擇您方言的文檔頁面並搜索create_engine
以查找有關如何創建它的示例。
您可以在所有支持的方言的引擎配置頁面上獲得更簡潔的概述。
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
傳遞給pandas 的DataFrame 的to_sql(...)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.