跳至主要内容

数据库功能矩阵

此页面概述了 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✔️✔️
排除(EXCLUDE)✔️‡暂不支持✔️暂不支持

* 在 Microsoft SQL Server 中使用 UNIQUE 约束时需要注意 † 仅在 MySQL 版本 8 及更高版本中支持。‡ 仅在 PostgreSQL 中支持。

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

删除行为支持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-树(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 字段过滤尚不支持。
DBref
变更流
直接访问聚合管道
© . This site is unofficial and not affiliated with Prisma Data, Inc.