视图
您可以通过多种方式在 Drizzle ORM 中声明视图。
你可以声明需要创建的视图,或者声明已存在于数据库中的视图。
你可以使用内联 query builder
语法、独立的 query builder
和原始的 sql
操作符来声明视图。
当使用内联或独立的查询构建器创建视图时,视图列的架构将自动推断,
但如果使用 sql
,则必须显式声明视图列的架构。
声明视图
如果你需要一个列的子集,你可以在查询构建器中使用 .select({ ... })
方法,如下所示:
你也可以使用 独立的查询构建器
声明视图,它的工作方式完全相同:
使用原始 SQL 声明视图
每当你需要使用查询构建器不支持的语法声明视图时,
你可以直接使用 sql
操作符并显式指定视图列的架构。
声明已存在的视图
当你获得对数据库中现有视图的只读访问权限时,可使用 .existing()
视图配置,
drizzle-kit
将忽略并不会在生成的迁移中生成 create view
语句。
物化视图
根据官方文档,PostgreSQL 具有 常规
和 物化
视图。
PostgreSQL 中的物化视图像视图一样使用规则系统,但以表格形式持久化结果。
Drizzle ORM 原生支持 PostgreSQL 物化视图:
你可以在应用程序运行时刷新物化视图:
扩展示例
查询中的所有参数将被内联,而不是替换为 $1
、$2
等。