データベース機能マトリックス
このページでは、Prisma ORMがサポートするデータベースによって提供される機能の概要を説明します。さらに、これらの各機能がPrisma ORMでどのように使用できるかを、詳細なドキュメントへのポインターとともに説明します。
リレーショナルデータベース機能
このセクションでは、Prisma ORMで現在サポートされているリレーショナルデータベースに存在するデータベース機能について説明します。「Prismaスキーマ」列は、特定の機能がPrismaスキーマでどのように表現できるかを示し、そのドキュメントへのリンクを提供します。データベース機能は、Prismaスキーマでまだ表現できない場合でも、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 | ✔️ | ✔️ |
ネイティブデータベース型 | ✔️ | ✔️ | ✔️ | 未対応 |
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の定義 |
配列 | ✔️ | |
列挙型 | ✔️ | Prisma ORMレベルで実装 |
ネイティブデータベース型 | ✔️ | 参照:フィールドマッピングリファレンス |
JSONサポート | ✔️ | 高度なJsonフィールドフィルタリングはまだサポートされていません。 |
DBrefs | 非対応 | |
変更ストリーム | 非対応 | |
集計パイプラインへの直接アクセス | 非対応 |