2017-05-20 12 views
0

Sqlalchemyのコアを使用しているので、他の同様の質問のような宣言的な基本クラスを使用していません。 エンジンを使用してテーブルの主キーを取得する方法は?sqlalchemy(コア)のテーブルから主キー列名を取得

+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モデルを作成していないと思います。上記のアプローチでは、これを行う必要はなく、あらゆる種類の情報をテーブルからより動的に収集することができます。あなたが他人の手の込んだデータベースを手渡された場合に特に便利です!

希望に役立ちます。

関連する問題