跳至主要内容

数据库特性矩阵

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

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

关系型数据库特性

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

约束

约束PostgreSQLMicrosoft SQL ServerMySQLSQLiteCockroachDBPrisma 模式Prisma ClientPrisma Migrate
主键 (PRIMARY KEY)✔️✔️✔️✔️✔️@id@@id✔️✔️
外键 (FOREIGN KEY)✔️✔️✔️✔️✔️关系字段✔️✔️
唯一键 (UNIQUE)✔️✔️†✔️✔️✔️@unique@@unique✔️✔️
检查约束 (CHECK)✔️✔️✔️*✔️✔️尚未支持✔️尚未支持
非空约束 (NOT NULL)✔️✔️✔️✔️✔️?✔️✔️
默认值 (DEFAULT)✔️✔️✔️✔️✔️@default✔️✔️

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

删除行为PostgreSQLMicrosoft SQL ServerMySQLSQLiteCockroachDBPrisma 模式Prisma ClientPrisma Migrate
级联 (CASCADE)✔️✔️✔️✔️✔️✔️✔️✔️
限制 (RESTRICT)✔️不支持✔️✔️✔️✔️✔️✔️
无操作 (NO ACTION)✔️✔️✔️✔️✔️✔️✔️✔️
设置为默认值 (SET DEFAULT)✔️✔️✔️✔️✔️✔️✔️✔️
设置为 NULL (SET NULL)✔️✔️✔️✔️✔️✔️✔️✔️
  • † 在2.26.0及更高版本中,您可以在关系字段上定义引用操作。引用操作确定在删除或更新相关记录时应如何处理记录。

索引

索引PostgreSQLMicrosoft SQL ServerMySQLSQLiteCockroachDBPrisma 模式Prisma ClientPrisma Migrate
唯一键 (UNIQUE)✔️✔️✔️✔️✔️@unique@@unique✔️✔️
使用 (USING)✔️不支持不支持不支持✔️type✔️✔️
条件 (WHERE)✔️✔️✔️✔️✔️尚未支持✔️尚未支持
(表达式)✔️✔️✔️✔️✔️尚未支持✔️尚未支持
包含 (INCLUDE)✔️✔️不支持不支持✔️尚未支持✔️尚未支持
  • † 在 3.6.0 及更高版本中预览,在 4.0.0 及更高版本中正式发布,仅适用于 PostgreSQL 连接器。

通过 USING 指定的算法

索引类型(算法)PostgreSQLMicrosoft SQL ServerMySQLSQLiteCockroachDBPrisma 模式Prisma ClientPrisma Migrate
B 树✔️✔️✔️✔️✔️✔️†✔️尚未支持
哈希✔️✔️✔️✔️✔️✔️†✔️尚未支持
GiST✔️✔️不支持不支持✔️✔️†✔️*尚未支持
GIN✔️✔️不支持不支持✔️✔️†✔️*尚未支持
BRIN✔️✔️不支持不支持✔️✔️†✔️*尚未支持
SP-GiST✔️✔️不支持不支持✔️✔️†✔️*尚未支持
  • * 仅在数据库原生支持时可用。
  • † 仅在 Prisma ORM 4.0.0 及更高版本中,与 PostgreSQL 连接器一起使用时可用。

其他

功能PostgreSQLMicrosoft SQL ServerMySQLSQLiteCockroachDBPrisma 模式Prisma ClientPrisma 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不支持
更改流不支持
直接访问聚合管道不支持