【发布时间】:2018-01-23 23:33:57
【问题描述】:
我想在数据库中使用automap pattern 上的预先存在的表。
但是,为了能够使用此模式,您需要按照文档中所示设置主键(我自己尝试过;失败,如 this)。
sqlalchemy 中是否有任何方法可以将主键设置为已经存在的 id 列?(最好来自下面显示的 Users 对象)。
顺便说一句,我正在使用 postgresql(与 doesn't seem to allow setting a primary after a table has been created 的 sqlite 相比)。
仅供参考
到目前为止,我已经能够成功访问数据如下:
from sqlalchemy import Table, MetaData
from sqlalchemy.orm import sessionmaker
metadata = MetaData(engine)
Users = Table('users', metadata, autoload=True)
Session = sessionmaker(bind=engine)
session = Session()
user_q = session.query(Users).filter(Users.c.id==1)
但这给了我一个列表,我需要在其中访问带有索引的值。我想通过属性(列)名称为给定行设置值,就像通常在 sqlalchemy 中所做的那样(例如,通过 user.first_name = "John" 语法)。
【问题讨论】:
标签: python postgresql sqlalchemy