在SQLAlchemy中使用Postgres/PostGIS视图

2 投票
1 回答
1923 浏览
提问于 2025-04-15 17:47

有两个问题:

  • 我想在我的PostGIS数据库中生成一个视图。请问我该如何把这个视图添加到我的geometry_columns表中?

  • 我需要做些什么才能在SQLAlchemy中使用这个视图?在SQLAlchemy中,表和视图有什么区别吗?我能不能用和表一样的方法来使用视图?

抱歉我的英语不好。

如果你对我的问题有疑问,请随时问我,这样我可以尝试用其他方式解释 :)

尼科

1 个回答

4

在SQLAlchemy中,表对象有两个主要作用。首先,它们可以用来发出创建数据库表的命令。其次,它们的主要功能是描述表中可以选择和插入的数据列及其类型。

如果你只是想选择数据,那么在SQLAlchemy看来,视图就像一个普通的表。你只需要把视图描述成一个包含你感兴趣的列的表(你甚至不需要描述所有的列)。如果你想使用ORM(对象关系映射),你需要告诉SQLAlchemy哪些列可以作为主键(只要是唯一的就可以)。声明一些列为外键也会让你更容易建立关系。如果你不对这个表对象发出创建命令,那么它只是SQLAlchemy用来了解如何查询数据库的元数据。

如果你还想向视图插入数据,那么你需要在视图上创建PostgreSQL规则或触发器,以便将写入操作重定向到正确的位置。我不太清楚在Python端如何有效地重定向写入操作。

撰写回答