数据库特性矩阵
此页面概述了 Prisma ORM 支持的数据库提供的功能。此外,它还解释了如何在 Prisma ORM 中使用每个功能,并提供指向进一步文档的指针。
注意:如果数据库本身不支持某个功能,则在 Prisma ORM 中也无法使用该功能。
关系型数据库特性
本节介绍了 Prisma ORM 当前支持的关系型数据库上存在的哪些数据库功能。**Prisma 模式**列指示如何在Prisma 模式中表示某个功能,并链接到其文档。请注意,即使数据库功能可能尚未在 Prisma 模式中表示,也可以在**Prisma Client**中使用它们。
约束
约束 | PostgreSQL | Microsoft SQL Server | MySQL | SQLite | CockroachDB | Prisma 模式 | Prisma Client | Prisma Migrate |
---|---|---|---|---|---|---|---|---|
主键 (PRIMARY KEY) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | @id 和 @@id | ✔️ | ✔️ |
外键 (FOREIGN KEY) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 关系字段 | ✔️ | ✔️ |
唯一键 (UNIQUE) | ✔️ | ✔️† | ✔️ | ✔️ | ✔️ | @unique 和 @@unique | ✔️ | ✔️ |
检查约束 (CHECK) | ✔️ | ✔️ | ✔️* | ✔️ | ✔️ | 尚未支持 | ✔️ | 尚未支持 |
非空约束 (NOT NULL) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ? | ✔️ | ✔️ |
默认值 (DEFAULT) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | @default | ✔️ | ✔️ |
引用操作(外键引用的删除和更新行为)
删除行为 | PostgreSQL | Microsoft SQL Server | MySQL | SQLite | CockroachDB | Prisma 模式 | Prisma Client | Prisma Migrate |
---|---|---|---|---|---|---|---|---|
级联 (CASCADE) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️† | ✔️ | ✔️† |
限制 (RESTRICT) | ✔️ | 不支持 | ✔️ | ✔️ | ✔️ | ✔️† | ✔️ | ✔️† |
无操作 (NO ACTION) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️† | ✔️ | ✔️† |
设置为默认值 (SET DEFAULT) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️† | ✔️ | ✔️† |
设置为 NULL (SET NULL) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️† | ✔️ | ✔️† |
索引
索引 | PostgreSQL | Microsoft SQL Server | MySQL | SQLite | CockroachDB | Prisma 模式 | Prisma Client | Prisma Migrate |
---|---|---|---|---|---|---|---|---|
唯一键 (UNIQUE) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | @unique 和 @@unique | ✔️ | ✔️ |
使用 (USING) | ✔️ | 不支持 | 不支持 | 不支持 | ✔️ | type † | ✔️ | ✔️† |
条件 (WHERE) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 尚未支持 | ✔️ | 尚未支持 |
(表达式) | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 尚未支持 | ✔️ | 尚未支持 |
包含 (INCLUDE) | ✔️ | ✔️ | 不支持 | 不支持 | ✔️ | 尚未支持 | ✔️ | 尚未支持 |
- † 在 3.6.0 及更高版本中预览,在 4.0.0 及更高版本中正式发布,仅适用于 PostgreSQL 连接器。
通过 USING
指定的算法
索引类型(算法) | PostgreSQL | Microsoft SQL Server | MySQL | SQLite | CockroachDB | Prisma 模式 | Prisma Client | Prisma Migrate |
---|---|---|---|---|---|---|---|---|
B 树 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️† | ✔️ | 尚未支持 |
哈希 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️† | ✔️ | 尚未支持 |
GiST | ✔️ | ✔️ | 不支持 | 不支持 | ✔️ | ✔️† | ✔️* | 尚未支持 |
GIN | ✔️ | ✔️ | 不支持 | 不支持 | ✔️ | ✔️† | ✔️* | 尚未支持 |
BRIN | ✔️ | ✔️ | 不支持 | 不支持 | ✔️ | ✔️† | ✔️* | 尚未支持 |
SP-GiST | ✔️ | ✔️ | 不支持 | 不支持 | ✔️ | ✔️† | ✔️* | 尚未支持 |
- * 仅在数据库原生支持时可用。
- † 仅在 Prisma ORM
4.0.0
及更高版本中,与 PostgreSQL 连接器一起使用时可用。
其他
功能 | PostgreSQL | Microsoft SQL Server | MySQL | SQLite | CockroachDB | Prisma 模式 | Prisma Client | Prisma Migrate |
---|---|---|---|---|---|---|---|---|
自动递增 ID | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | autoincrement() | ✔️ | ✔️ |
数组 | ✔️ | 不支持 | 不支持 | 不支持 | ✔️ | [] | ✔️* | ✔️* |
枚举 | ✔️ | 不支持 | ✔️ | 不支持 | ✔️ | enum | ✔️* | ✔️* |
原生数据库类型 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 尚未支持 |
SQL 视图 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | 尚未支持 | 尚未支持 | 尚未支持 |
JSON 支持 | ✔️ | ✔️† | ✔️ | 不支持 | ✔️‡ | ✔️* | ✔️* | ✔️* |
模糊/短语全文搜索 | ✔️ | ✔️ | ✔️ | 不支持 | ✔️ | 尚未支持 | 尚未支持 | 尚未支持 |
表继承 | ✔️ | ✔️ | 不支持 | 不支持 | ✔️ | 尚未支持 | ✔️* | 尚未支持 |
授权和用户管理 | ✔️ | ✔️ | ✔️ | 不支持 | ✔️ | 尚未支持 | 尚未支持 | 尚未支持 |
- * 仅在数据库原生支持时可用。
- † 仅通过 SQL 函数支持 JSON,但没有 JSON 列类型。因此,不支持客户端 JSON 操作。
- ‡ 尚未支持 JSON 数组:有关详细信息,请参阅CockroachDB 连接器页面
NoSQL 数据库特性
本节介绍了 Prisma ORM 当前支持的 NoSQL 数据库上存在的哪些数据库功能。
MongoDB
下表列出了常见的 MongoDB 功能,并描述了 Prisma ORM 提供的支持级别
功能 | Prisma ORM 支持 | 备注 |
---|---|---|
嵌入式文档 | ✔️ | |
事务 | ✔️ | |
索引 | ✔️ 有注意事项 | 仅当它们引用的字段至少包含一些数据时,才能内省索引。 |
自动递增 ID | 不支持 | |
复合 ID | 不支持 | MongoDB 不支持复合 ID (@@id ) |
生成的 ObjectId | ✔️ | 请参阅:为 MongoDB 定义 ID |
数组 | ✔️ | |
枚举 | ✔️ | 在 Prisma ORM 级别实现 |
原生数据库类型 | ✔️ | 请参阅:字段映射参考 |
JSON 支持 | ✔️ | 尚未支持高级 Json 字段过滤。 |
DBrefs | 不支持 | |
更改流 | 不支持 | |
直接访问聚合管道 | 不支持 |