跳到主要内容

数据库功能矩阵

本页概述了 Prisma ORM 支持的数据库提供的功能。此外,它还解释了如何在 Prisma ORM 中使用这些功能,并提供了指向进一步文档的指针。

注意:如果数据库本身不支持某个功能,那么 Prisma ORM 也无法使用该功能。

关系型数据库功能

本节介绍当前由 Prisma ORM 支持的关系型数据库中存在的数据库功能。Prisma 模式列表示某个功能如何在Prisma 模式中表示,并链接到其文档。请注意,即使 Prisma 模式尚未支持某些数据库功能,也可以在Prisma 客户端中使用它们。

约束

约束PostgreSQLMicrosoft SQL ServerMySQLSQLiteCockroachDBPrisma 模式Prisma 客户端Prisma Migrate
PRIMARY KEY✔️✔️✔️✔️✔️@id@@id✔️✔️
FOREIGN KEY✔️✔️✔️✔️✔️关系字段✔️✔️
UNIQUE✔️✔️†✔️✔️✔️@unique@@unique✔️✔️
CHECK✔️✔️✔️*✔️✔️尚未✔️尚未
NOT NULL✔️✔️✔️✔️✔️?✔️✔️
DEFAULT✔️✔️✔️✔️✔️@default✔️✔️

引用操作(外键引用的删除和更新行为)

删除行为PostgreSQLMicrosoft SQL ServerMySQLSQLiteCockroachDBPrisma 模式Prisma 客户端Prisma Migrate
CASCADE✔️✔️✔️✔️✔️✔️✔️✔️
RESTRICT✔️✔️✔️✔️✔️✔️✔️
NO ACTION✔️✔️✔️✔️✔️✔️✔️✔️
SET DEFAULT✔️✔️✔️✔️✔️✔️✔️✔️
SET NULL✔️✔️✔️✔️✔️✔️✔️✔️
  • † 在2.26.0 及更高版本中,您可以在关系字段上定义引用操作。引用操作决定当相关记录被删除或更新时,应该对记录执行什么操作。

索引

索引PostgreSQLMicrosoft SQL ServerMySQLSQLiteCockroachDBPrisma 模式Prisma 客户端Prisma Migrate
UNIQUE✔️✔️✔️✔️✔️@unique@@unique✔️✔️
USING✔️✔️type✔️✔️
WHERE✔️✔️✔️✔️✔️尚未✔️尚未
(表达式)✔️✔️✔️✔️✔️尚未✔️尚未
INCLUDE✔️✔️✔️尚未✔️尚未
  • † 在 3.6.0 及更高版本中以预览形式提供,在 4.0.0 及更高版本中以正式发布的形式提供,仅适用于 PostgreSQL 连接器。

通过 USING 指定的算法

索引类型(算法)PostgreSQLMicrosoft SQL ServerMySQLSQLiteCockroachDBPrisma 模式Prisma 客户端Prisma Migrate
B-tree✔️✔️✔️✔️✔️✔️†✔️尚未
Hash✔️✔️✔️✔️✔️✔️†✔️尚未
GiST✔️✔️✔️✔️†✔️*尚未
GIN✔️✔️✔️✔️†✔️*尚未
BRIN✔️✔️✔️✔️†✔️*尚未
SP-GiST✔️✔️✔️✔️†✔️*尚未
  • * 仅在数据库本身支持的情况下可用。
  • † 仅在 Prisma ORM 版本 4.0.0 及更高版本中,使用 PostgreSQL 连接器才可用。

杂项

功能PostgreSQLMicrosoft SQL ServerMySQLSQLiteCockroachDBPrisma 模式Prisma 客户端Prisma Migrate
自动递增 ID✔️✔️✔️✔️✔️autoincrement()✔️✔️
数组✔️✔️[]✔️*✔️*
枚举✔️✔️✔️enum✔️*✔️*
原生数据库类型✔️✔️✔️✔️✔️✔️✔️尚未
SQL 视图✔️✔️✔️✔️✔️尚未尚未尚未
JSON 支持✔️✔️✔️✔️‡✔️*✔️*✔️*
模糊/短语全文搜索✔️✔️✔️✔️尚未尚未尚未
表继承✔️✔️✔️尚未✔️*尚未
授权和用户管理✔️✔️✔️✔️尚未尚未尚未
  • * 仅在数据库本身支持的情况下可用。
  • † 仅通过 SQL 函数支持 JSON,但没有 JSON 列类型。因此不支持客户端 JSON 操作。
  • ‡ 尚未支持 JSON 数组:有关详细信息,请参见CockroachDB 连接器页面

NoSQL 数据库功能

本节介绍当前由 Prisma ORM 支持的 NoSQL 数据库中存在的数据库功能。

MongoDB

下表列出了常见的 MongoDB 功能,并描述了 Prisma ORM 提供的支持级别。

功能Prisma ORM 支持备注
嵌入文档✔️
事务✔️
索引✔️ 有注意事项只有当索引引用的字段包含一些数据时,才能内省索引。
自动递增 ID
复合 IDMongoDB 不支持复合 ID (@@id)
生成的 ObjectId✔️参见:为 MongoDB 定义 ID
数组✔️
枚举✔️在 Prisma ORM 级别实现
原生数据库类型✔️参见:字段映射参考
JSON 支持✔️尚未支持高级 Json 字段过滤。
DBrefs
变更流
直接访问聚合管道