繁体   English   中英

使用sqlalchemy加载现有的多对多表关系

[英]Load an existing many-to-many table relation with sqlalchemy

我正在使用SqlAlchemy与现有的PostgreSQL数据库进行交互。

我需要访问以多对多关系组织的数据。 该文档描述了如何创建关系,但是我找不到用于整齐加载和查询现有关系的示例。

查询现有关系与创建新关系并没有什么不同。 您几乎编写了相同的代码,但是指定了已经存在的表名和列名,当然,您不需要SQLAlchemy来发出CREATE TABLE语句。

参见http://www.sqlalchemy.org/docs/05/mappers.html#many-to-many 您所需要做的就是为示例中的现有父表,子表和关联表指定外键列,并指定autoload=True填写表中的其他字段。 如果您的关联表存储了其他信息(几乎总是如此),则应将多对多关系分解为两个多对一关系。

我在使用MySQL时学习了SQLAlchemy。 对于该数据库,我始终必须指定外键关系,因为它们不是显式的数据库约束。 您可能很幸运,并且能够从数据库中反映出更多信息,但是您可能更喜欢使用http://pypi.python.org/pypi/sqlautocode之类的代码来对整个数据库模式进行编码,并避免反射延迟。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM