データベース機能マトリックス
このページでは、Prisma ORMがサポートするデータベースによって提供される機能の概要を説明します。さらに、これらの各機能がPrisma ORMでどのように使用できるか、そして追加のドキュメントへのポインタも説明します。
リレーショナルデータベース機能
このセクションでは、現在Prisma ORMがサポートしているリレーショナルデータベースに存在するデータベース機能について説明します。Prisma schema列は、特定の機能がPrisma schemaでどのように表現できるかを示し、そのドキュメントへのリンクを提供します。データベース機能はPrisma schemaではまだ表現できない場合でも、Prisma Clientで使用できることに注意してください。
注記
これらの機能はリレーショナルデータベース専用です。MongoDBのようなNoSQLデータベースのサポートされている機能は、以下に記載されています。
制約
| 制約 | サポート | Prismaスキーマ | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
PRIMARY KEY | ✔️ | @id および @@id | ✔️ | ✔️ |
FOREIGN KEY | ✔️ | リレーションフィールド | ✔️ | ✔️ |
UNIQUE | ✔️* | @unique および @@unique | ✔️ | ✔️ |
CHECK | ✔️† | まだ | ✔️ | まだ |
NOT NULL | ✔️ | ? | ✔️ | ✔️ |
DEFAULT | ✔️ | @default | ✔️ | ✔️ |
* Microsoft SQL Serverで
UNIQUE制約を使用する場合の注意点 † MySQLのバージョン8以降のみでサポートされています。
参照アクション(外部キー参照の削除および更新動作)
| 削除動作 | サポート | Prismaスキーマ | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
CASCADE | ✔️ | ✔️ | ✔️ | ✔️ |
RESTRICT | ✔️* | ✔️ | ✔️ | ✔️ |
NO ACTION | ✔️ | ✔️ | ✔️ | ✔️ |
SET DEFAULT | ✔️ | ✔️ | ✔️ | ✔️ |
SET NULL | ✔️ | ✔️ | ✔️ | ✔️ |
*
RESTRICTはMicrosoft SQL Serverではサポートされていません。
インデックス
| インデックス | サポート | Prismaスキーマ | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
UNIQUE | ✔️ | @unique および @@unique | ✔️ | ✔️ |
USING | PostgreSQLのみ | 型 | ✔️ | ✔️ |
WHERE | ✔️ | まだ | ✔️ | まだ |
(式) | ✔️ | まだ | ✔️ | まだ |
INCLUDE | PostgreSQLおよびMicrosoft SQL Serverのみ | まだ | ✔️ | まだ |
USINGを介して指定されたアルゴリズム
| インデックスタイプ(アルゴリズム) | サポート | Prismaスキーマ | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
| B-tree | ✔️ | ✔️† | ✔️ | まだ |
| Hash | ✔️ | ✔️† | ✔️ | まだ |
| GiST | ✔️* | ✔️† | ✔️* | まだ |
| GIN | ✔️* | ✔️† | ✔️* | まだ |
| BRIN | ✔️* | ✔️† | ✔️* | まだ |
| SP-GiST | ✔️* | ✔️† | ✔️* | まだ |
- * MySQLおよびSQLiteではサポートされていません
- † Prisma ORMバージョン
4.0.0以降でPostgreSQLコネクタでのみ利用可能です。
その他
| 機能 | サポート | Prismaスキーマ | Prisma Client | Prisma Migrate |
|---|---|---|---|---|
| 自動インクリメントID | ✔️ | autoincrement() | ✔️ | ✔️ |
| 配列 | PostgreSQLのみ | [] | ✔️ | ✔️ |
| Enum | ✔️*† | enum | ✔️ | ✔️ |
| ネイティブデータベース型 | ✔️ | ✔️ | ✔️ | まだ |
| SQLビュー | ✔️ | まだ | まだ | まだ |
| JSONサポート | ✔️† | ✔️ | ✔️ | ✔️ |
| あいまい/フレーズ全文検索 | ✔️‡ | まだ | まだ | まだ |
| テーブル継承 | PostgreSQLおよびMicrosoft SQL Serverのみ | まだ | ✔️ | まだ |
| 認証とユーザー管理 | ✔️‡ | まだ | まだ | まだ |
- * Microsoft SQL Serverではサポートされていません
- † JSONおよびEnum型はPrisma ORM 6.2.0以降のSQLiteでサポートされています。
- ‡ SQLiteではサポートされていません
NoSQLデータベース機能
このセクションでは、現在Prisma ORMがサポートしているNoSQLデータベースに存在するデータベース機能について説明します。
MongoDB
以下の表は、一般的なMongoDB機能とPrisma ORMが提供するサポートレベルをリストしています。
| 機能 | Prisma ORMでサポート | 注記 |
|---|---|---|
| 埋め込みドキュメント | ✔️ | |
| トランザクション | ✔️ | |
| インデックス | ✔️ 注意点あり | インデックスは、参照するフィールドに少なくともいくつかのデータが含まれている場合にのみイントロスペクションできます。 |
| 自動インクリメントID | いいえ | |
| 複合ID | いいえ | MongoDBは複合ID(@@id)をサポートしていません |
生成されたObjectId | ✔️ | 参照:MongoDBのID定義 |
| 配列 | ✔️ | |
| Enum | ✔️ | Prisma ORMレベルで実装 |
| ネイティブデータベース型 | ✔️ | 参照:フィールドマッピングリファレンス |
| JSONサポート | ✔️ | 高度なJsonフィールドフィルタリングはまだサポートされていません。 |
| DBRefs | いいえ | |
| 変更ストリーム | いいえ | |
| アグリゲーションパイプラインへの直接アクセス | いいえ |