資料庫功能矩陣
本頁面概述了 Prisma ORM 支援的資料庫所提供的功能。此外,它還解釋瞭如何在 Prisma ORM 中使用這些功能,並提供了指向更多文件的連結。
關係型資料庫功能
本節描述了 Prisma ORM 當前支援的關係型資料庫中存在哪些資料庫功能。Prisma schema 列指示如何在Prisma schema中表示某個功能,並連結到其文件。請注意,即使資料庫功能可能尚未在 Prisma schema 中可表示,它們也可以在 Prisma Client 中使用。
注意
這些功能僅適用於關係型資料庫。對 NoSQL 資料庫(如 MongoDB)的支援功能可以在下方找到。
約束
| 約束 | 支援 | Prisma schema | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
主鍵(PRIMARY KEY) | ✔️ | @id 和 @@id | ✔️ | ✔️ |
外部索引鍵(FOREIGN KEY) | ✔️ | 關係欄位 | ✔️ | ✔️ |
唯一鍵(UNIQUE) | ✔️* | @unique 和 @@unique | ✔️ | ✔️ |
檢查(CHECK) | ✔️† | 尚未 | ✔️ | 尚未 |
非空(NOT NULL) | ✔️ | ? | ✔️ | ✔️ |
預設值(DEFAULT) | ✔️ | @default | ✔️ | ✔️ |
* 使用 Microsoft SQL Server 的
UNIQUE約束時適用注意事項 † 僅在 MySQL 8.0 及更高版本中支援。
引用操作(外部索引鍵引用的刪除和更新行為)
| 刪除行為 | 支援 | 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 和 @@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 | 否 | |
| 變更流 | 否 | |
| 直接訪問聚合管道 | 否 |