簡體   English   中英

在 Pandas to_sql 中指定架構

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM