跳到主要内容

数据库功能矩阵

本页面概述了 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-树✔️✔️†✔️尚未
哈希✔️✔️†✔️尚未
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 和枚举类型。
  • ‡ 不支持 SQLite

NoSQL 数据库功能

本节描述了 Prisma ORM 当前支持的 NoSQL 数据库中存在哪些数据库功能。

MongoDB

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

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