跳到主要内容

数据库功能矩阵

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

关系型数据库功能

本节描述了 Prisma ORM 当前支持的关系型数据库所具备的功能。**Prisma schema** 列指出了如何在 Prisma schema 中表示某个功能,并提供了其文档链接。请注意,即使某些数据库功能尚未能在 Prisma schema 中表示,它们仍可在 **Prisma Client** 中使用。

注意

这些功能*仅*适用于关系型数据库。对于 NoSQL 数据库(如 MongoDB)的支持功能,请见下文

约束

约束支持Prisma schemaPrisma ClientPrisma Migrate
PRIMARY KEY✔️@id@@id✔️✔️
FOREIGN KEY✔️关系字段✔️✔️
UNIQUE✔️*@unique@@unique✔️✔️
CHECK✔️†暂不支持✔️暂不支持
NOT NULL✔️?✔️✔️
DEFAULT✔️@default✔️✔️

* 使用 Microsoft SQL Server 的 UNIQUE 约束时有注意事项 † 仅在 MySQL 8.0 及更高版本中支持

参照动作(外键引用的删除和更新行为)

删除行为支持Prisma schemaPrisma ClientPrisma Migrate
CASCADE✔️✔️✔️✔️
RESTRICT✔️*✔️✔️✔️
NO ACTION✔️✔️✔️✔️
SET DEFAULT✔️✔️✔️✔️
SET NULL✔️✔️✔️✔️

* Microsoft SQL Server 不支持 RESTRICT

索引

索引支持Prisma schemaPrisma ClientPrisma Migrate
UNIQUE✔️@unique@@unique✔️✔️
USING仅限 PostgreSQL类型✔️✔️
WHERE✔️暂不支持✔️暂不支持
(表达式)✔️暂不支持✔️暂不支持
INCLUDE仅限 PostgreSQL 和 Microsoft SQL Server暂不支持✔️暂不支持

通过 USING 指定的算法

索引类型(算法)支持Prisma schemaPrisma ClientPrisma Migrate
B-tree✔️✔️†✔️暂不支持
Hash✔️✔️†✔️暂不支持
GiST✔️*✔️†✔️*暂不支持
GIN✔️*✔️†✔️*暂不支持
BRIN✔️*✔️†✔️*暂不支持
SP-GiST✔️*✔️†✔️*暂不支持
  • * MySQL 和 SQLite 不支持
  • † 仅在 Prisma ORM 4.0.0 及更高版本中通过 PostgreSQL 连接器提供。

其他

功能支持Prisma schemaPrisma ClientPrisma Migrate
自增 ID✔️autoincrement()✔️✔️
数组仅限 PostgreSQL[]✔️✔️
枚举✔️*†enum✔️✔️
原生数据库类型✔️✔️✔️暂不支持
SQL 视图✔️暂不支持暂不支持暂不支持
JSON 支持✔️†✔️✔️✔️
模糊/短语全文搜索✔️‡暂不支持暂不支持暂不支持
表继承仅限 PostgreSQL 和 Microsoft SQL Server暂不支持✔️暂不支持
授权和用户管理✔️‡暂不支持暂不支持暂不支持
  • * Microsoft SQL Server 不支持
  • † 从 Prisma ORM 6.2.0 开始,SQLite 支持 JSON 和 Enum 类型。
  • ‡ SQLite 不支持

NoSQL 数据库功能

本节描述了 Prisma ORM 当前支持的 NoSQL 数据库所具备的功能。

MongoDB

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

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