数据库功能矩阵
本页概述了 Prisma ORM 支持的数据库提供的功能。此外,它还解释了如何在 Prisma ORM 中使用这些功能,并提供了指向进一步文档的链接。
关系数据库功能
本节描述了 Prisma ORM 当前支持的关系数据库中存在哪些数据库功能。Prisma schema 列指示如何在 Prisma schema 中表示特定功能,并链接到其文档。请注意,即使数据库功能可能尚未在 Prisma schema 中表示,也可以在 Prisma Client 中使用。
注意
这些功能仅适用于关系数据库。NoSQL 数据库(如 MongoDB)的支持功能可以在下面找到。
约束
约束 | 支持 | Prisma schema | Prisma Client | Prisma Migrate |
---|---|---|---|---|
主键 | ✔️ | @id 和 @@id | ✔️ | ✔️ |
外键 | ✔️ | 关系字段 | ✔️ | ✔️ |
唯一 | ✔️* | @unique 和 @@unique | ✔️ | ✔️ |
CHECK | ✔️† | 暂未支持 | ✔️ | 暂未支持 |
非空 | ✔️ | ? | ✔️ | ✔️ |
默认值 | ✔️ | @default | ✔️ | ✔️ |
* 将
UNIQUE
约束与 Microsoft SQL Server 一起使用时,需要注意一些限制 † 仅在 MySQL 8 及更高版本中受支持。
引用操作(外键引用的删除和更新行为)
删除行为 | 支持 | Prisma schema | Prisma Client | Prisma Migrate |
---|---|---|---|---|
CASCADE | ✔️ | ✔️ | ✔️ | ✔️ |
RESTRICT | ✔️* | ✔️ | ✔️ | ✔️ |
NO ACTION | ✔️ | ✔️ | ✔️ | ✔️ |
SET DEFAULT | ✔️ | ✔️ | ✔️ | ✔️ |
SET NULL | ✔️ | ✔️ | ✔️ | ✔️ |
* Microsoft SQL Server 不支持
RESTRICT
。
索引
索引 | 支持 | Prisma schema | Prisma Client | Prisma Migrate |
---|---|---|---|---|
唯一 | ✔️ | @unique 和 @@unique | ✔️ | ✔️ |
USING | 仅限 PostgreSQL | 类型 | ✔️ | ✔️ |
WHERE | ✔️ | 暂未支持 | ✔️ | 暂未支持 |
(表达式) | ✔️ | 暂未支持 | ✔️ | 暂未支持 |
INCLUDE | 仅限 PostgreSQL 和 Microsoft SQL Server | 暂未支持 | ✔️ | 暂未支持 |
通过 USING
指定的算法
索引类型(算法) | 支持 | Prisma schema | Prisma Client | Prisma Migrate |
---|---|---|---|---|
B 树 | ✔️ | ✔️† | ✔️ | 暂未支持 |
哈希 | ✔️ | ✔️† | ✔️ | 暂未支持 |
GiST | ✔️* | ✔️† | ✔️* | 暂未支持 |
GIN | ✔️* | ✔️† | ✔️* | 暂未支持 |
BRIN | ✔️* | ✔️† | ✔️* | 暂未支持 |
SP-GiST | ✔️* | ✔️† | ✔️* | 暂未支持 |
- * MySQL 和 SQLite 不支持
- † 仅在 Prisma ORM
4.0.0
及更高版本中通过 PostgreSQL 连接器可用。
其他
功能 | 支持 | Prisma schema | Prisma Client | Prisma Migrate |
---|---|---|---|---|
自增 ID | ✔️ | autoincrement() | ✔️ | ✔️ |
数组 | 仅限 PostgreSQL | [] | ✔️ | ✔️ |
枚举 | ✔️*† | enum | ✔️ | ✔️ |
原生数据库类型 | ✔️ | ✔️ | ✔️ | 暂未支持 |
SQL 视图 | ✔️ | 暂未支持 | 暂未支持 | 暂未支持 |
JSON 支持 | ✔️† | ✔️ | ✔️ | ✔️ |
模糊/短语全文搜索 | ✔️‡ | 暂未支持 | 暂未支持 | 暂未支持 |
表继承 | 仅限 PostgreSQL 和 Microsoft SQL Server | 暂未支持 | ✔️ | 暂未支持 |
授权和用户管理 | ✔️‡ | 暂未支持 | 暂未支持 | 暂未支持 |
- * Microsoft SQL Server 不支持
- † 自 Prisma ORM 6.2.0 起,SQLite 支持 JSON 和枚举类型。
- ‡ SQLite 不支持
NoSQL 数据库功能
本节描述了 Prisma ORM 当前支持的 NoSQL 数据库中存在哪些数据库功能。
MongoDB
下表列出了常见的 MongoDB 功能,并描述了 Prisma ORM 提供的支持级别
功能 | Prisma ORM 支持 | 注释 |
---|---|---|
嵌入式文档 | ✔️ | |
事务 | ✔️ | |
索引 | ✔️,但有注意事项 | 只有当索引引用的字段至少包含一些数据时,才能进行内省。 |
自增 ID | 否 | |
复合 ID | 否 | MongoDB 不支持复合 ID (@@id ) |
生成的 ObjectId | ✔️ | 参见:为 MongoDB 定义 ID |
数组 | ✔️ | |
枚举 | ✔️ | 在 Prisma ORM 级别实现 |
原生数据库类型 | ✔️ | 参见:字段映射参考 |
JSON 支持 | ✔️ | 尚不支持高级 Json 字段过滤。 |
DBrefs | 否 | |
变更流 | 否 | |
直接访问聚合管道 | 否 |