在SQLAlchemy中使用Postgres/PostGIS视图
有两个问题:
我想在我的PostGIS数据库中生成一个视图。请问我该如何把这个视图添加到我的geometry_columns表中?
我需要做些什么才能在SQLAlchemy中使用这个视图?在SQLAlchemy中,表和视图有什么区别吗?我能不能用和表一样的方法来使用视图?
抱歉我的英语不好。
如果你对我的问题有疑问,请随时问我,这样我可以尝试用其他方式解释 :)
尼科
1 个回答
4
在SQLAlchemy中,表对象有两个主要作用。首先,它们可以用来发出创建数据库表的命令。其次,它们的主要功能是描述表中可以选择和插入的数据列及其类型。
如果你只是想选择数据,那么在SQLAlchemy看来,视图就像一个普通的表。你只需要把视图描述成一个包含你感兴趣的列的表(你甚至不需要描述所有的列)。如果你想使用ORM(对象关系映射),你需要告诉SQLAlchemy哪些列可以作为主键(只要是唯一的就可以)。声明一些列为外键也会让你更容易建立关系。如果你不对这个表对象发出创建命令,那么它只是SQLAlchemy用来了解如何查询数据库的元数据。
如果你还想向视图插入数据,那么你需要在视图上创建PostgreSQL规则或触发器,以便将写入操作重定向到正确的位置。我不太清楚在Python端如何有效地重定向写入操作。