跳到主要內容

資料庫功能矩陣

本頁面概述了 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✔️✔️

* UNIQUE 約束條件與 Microsoft SQL Server 搭配使用時的注意事項 † 僅在 MySQL 8 及更高版本中支援。

參考動作(外鍵參考的刪除和更新行為)

刪除行為已支援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-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 欄位篩選。
DBrefs
變更串流
直接存取聚合管道