資料庫功能矩陣
本頁面概述了 Prisma ORM 所支援的資料庫所提供的功能。此外,它還說明了如何使用 Prisma ORM 來運用這些功能,並附有指向進一步文件的連結。
關聯式資料庫功能
本節描述目前由 Prisma ORM 支援的關聯式資料庫中存在哪些資料庫功能。Prisma schema 欄位指示如何在 Prisma schema 中表示特定功能,並連結至相關文件。請注意,即使某些資料庫功能尚未能在 Prisma schema 中表示,它們仍可在 Prisma Client 中使用。
注意
這些功能僅適用於關聯式資料庫。NoSQL 資料庫(如 MongoDB)的支援功能請見下方。
限制條件 (Constraints)
| 約束 (Constraint) | 支援 | Prisma schema | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
PRIMARY KEY (主鍵) | ✔️ | @id 和 @@id | ✔️ | ✔️ |
FOREIGN KEY (外鍵) | ✔️ | 關聯欄位 | ✔️ | ✔️ |
UNIQUE (唯一) | ✔️* | @unique 和 @@unique | ✔️ | ✔️ |
CHECK (檢查) | ✔️† | 尚未支援 | ✔️ | 尚未支援 |
NOT NULL (非空值) | ✔️ | ? | ✔️ | ✔️ |
DEFAULT | ✔️ | @default | ✔️ | ✔️ |
EXCLUDE | ✔️‡ | 尚未支援 | ✔️ | 尚未支援 |
* 在 Microsoft SQL Server 中使用
UNIQUE限制條件時有相關注意事項 † 僅在 MySQL 8 及更高版本中支援。 ‡ 僅在 PostgreSQL 中支援。
參照動作 (Referential Actions,外鍵參照的刪除與更新行為)
| 刪除行為 | 支援 | Prisma schema | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
CASCADE | ✔️ | ✔️ | ✔️ | ✔️ |
RESTRICT | ✔️* | ✔️ | ✔️ | ✔️ |
NO ACTION | ✔️ | ✔️ | ✔️ | ✔️ |
SET DEFAULT | ✔️ | ✔️ | ✔️ | ✔️ |
SET NULL | ✔️ | ✔️ | ✔️ | ✔️ |
* Microsoft SQL Server 不支援
RESTRICT。
索引 (Indexes)
| 索引 (Index) | 支援 | Prisma schema | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
UNIQUE (唯一) | ✔️ | @unique 和 @@unique | ✔️ | ✔️ |
USING | 僅限 PostgreSQL | type | ✔️ | ✔️ |
WHERE | ✔️ | 尚未支援 | ✔️ | 尚未支援 |
(expression) | ✔️ | 尚未支援 | ✔️ | 尚未支援 |
INCLUDE | 僅限 PostgreSQL 和 Microsoft SQL Server | 尚未支援 | ✔️ | 尚未支援 |
透過 USING 指定的演算法
| 索引類型 (演算法) | 支援 | Prisma schema | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
| B-tree | ✔️ | ✔️† | ✔️ | 尚未支援 |
| Hash | ✔️ | ✔️† | ✔️ | 尚未支援 |
| GiST | ✔️* | ✔️† | ✔️* | 尚未支援 |
| GIN | ✔️* | ✔️† | ✔️* | 尚未支援 |
| BRIN | ✔️* | ✔️† | ✔️* | 尚未支援 |
| SP-GiST | ✔️* | ✔️† | ✔️* | 尚未支援 |
- * 不支援 MySQL 和 SQLite
- † 僅在 Prisma ORM
4.0.0及更高版本的 PostgreSQL 連接器中可用。
其他 (Misc)
| 功能 | 支援 | Prisma schema | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
| 自動遞增 ID | ✔️ | autoincrement() | ✔️ | ✔️ |
| 陣列 (Arrays) | 僅限 PostgreSQL | [] | ✔️ | ✔️ |
| 列舉 (Enums) | ✔️*† | enum | ✔️ | ✔️ |
| 原生資料庫類型 | ✔️ | ✔️ | ✔️ | 尚未支援 |
| SQL 檢視表 (SQL Views) | ✔️ | 尚未支援 | 尚未支援 | 尚未支援 |
| JSON 支援 | ✔️† | ✔️ | ✔️ | ✔️ |
| 模糊/短語全文檢索 (Fuzzy/Phrase full text search) | ✔️‡ | 尚未支援 | 尚未支援 | 尚未支援 |
| 資料表繼承 | 僅限 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 支援情況 | 註解 |
|---|---|---|
| 嵌入式文件 (Embedded documents) | ✔️ | |
| 事務 (Transactions) | ✔️ | |
| 索引 | ✔️ 有附帶條件 | 唯有當索引所參考的欄位至少包含部分資料時,才能對其進行內省 (Introspection)。 |
| 自動遞增 ID | 否 | |
| 複合 ID (Compound IDs) | 否 | MongoDB 不支援複合 ID (@@id) |
生成的 ObjectId | ✔️ | 請參閱:定義 MongoDB 的 ID |
| 陣列 (Arrays) | ✔️ | |
| 列舉 (Enums) | ✔️ | 於 Prisma ORM 層級實作 |
| 原生資料庫類型 | ✔️ | 請參閱:欄位對映參考 |
| JSON 支援 | ✔️ | 目前不支援進階的 Json 欄位篩選。 |
| DBrefs | 否 | |
| 變更串流 (Change streams) | 否 | |
| 直接存取聚合管道 (Aggregation pipeline) | 否 |