2017-05-20 54 views
0

我正在使用Sqlalchemy的核心,因此我不像其他類似問題那樣使用聲明性基類。 如何使用引擎獲取表的主鍵?從sqlalchemy(Core)中的表中獲取主鍵列名稱

+0

你必須澄清。你想從數據庫中的模式中獲取?或者你想從Python的表格定義中獲取? – univerio

+0

我沒有定義表格,所以我不能 –

+0

我需要直接從數據庫中讀取數據。 –

回答

1

所以,我剛碰到同樣的問題。您需要創建一個Table對象,該對象反映您正在尋找哪個表的主鍵。

from sqlalchemy import create_engine, Table, MetaData 

dbUrl = 'postgres://localhost:5432/databaseName' #will be different for different db's 

engine = create_engine(dbUrl) 
meta = MetaData() 

table = Table('tableName', meta, autoload=True, autoload_with=engine) 

primaryKeyColName = table.primary_key.columns.values()[0].name 

上面的表結構對許多不同的功能是有用的。我用它來管理地理空間表,因爲我不太喜歡當前的任何軟件包。

在您的評論中,您提到您並未定義表格......我認爲這意味着您並未創建表格的sqlalchemy模型。使用上述方法,您不需要這樣做,並且可以以更動態的方式從表中收集各種信息。特別有用的,如果你被交給別人的雜亂的數據庫!

希望有所幫助。