prisma-client-api について
現在の Prisma プロジェクトで Prisma Client を使う開発者向けのリファレンススキルです。クエリ、フィルタリング、リレーション、トランザクション、Raw SQL、クライアントメソッドを項目別に案内します。
主な機能
- 01CRUD と一括クエリのガイド
- 02フィルタリング、ソート、ページネーション
- 03リレーションの読み取りとネスト書き込み
- 04トランザクションのパターン
- 05Raw SQL とクライアントメソッドの参照
活用シーン
- 01Prisma Client のモデルクエリ作成
- 02クエリ結果の絞り込みと整形
- 03関連レコードの操作
- 04データベーストランザクションの実装
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ prisma/ skills --skill prisma-client-apiインストール後、Claude Code で/prisma-client-apiを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/client-methods.mdconstructor.mdfilters.mdmodel-queries.mdquery-options.mdraw-queries.mdrelations.mdtransactions.md詳細
Prisma Client API リファレンス
Prisma Client の完全な API リファレンスです。このスキルでは、現在の Prisma プロジェクトにおけるモデルクエリ、フィルタリング、リレーション、クライアントメソッドについて説明します。
適用する場面
次のような場合にこのスキルを参照してください。
- Prisma Client を使ってデータベースクエリを記述する
- CRUD 操作(作成、読み取り、更新、削除)を実行する
- データをフィルタリングして並べ替える
- リレーションを扱う
- トランザクションを使用する
- クライアントオプションを設定する
優先度別のルールカテゴリ
| 優先度 | カテゴリ | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | クライアントの構築 | HIGH | constructor |
| 2 | モデルクエリ | CRITICAL | model-queries |
| 3 | クエリの形式 | HIGH | query-options |
| 4 | フィルタリング | HIGH | filters |
| 5 | リレーション | HIGH | relations |
| 6 | トランザクション | CRITICAL | transactions |
| 7 | 生 SQL | CRITICAL | raw-queries |
| 8 | クライアントメソッド | MEDIUM | client-methods |
クイックリファレンス
constructor-PrismaClientのセットアップ、アダプターの接続、ロギング、SQL コメント用プラグインmodel-queries- CRUD 操作と一括操作query-options-select、include、omit、並べ替え、ページネーションfilters- スカラーおよび論理フィルター演算子relations- リレーションの読み取りとネストした書き込みtransactions- 配列形式およびインタラクティブなトランザクションのパターンraw-queries-$queryRawと$executeRawの安全性client-methods- ライフサイクルメソッド、拡張機能、prisma-client向けのsatisfiesパターン
クライアントのインスタンス化
import { PrismaClient } from '../generated/client'
import { PrismaPg } from '@prisma/adapter-pg'
const adapter = new PrismaPg({
connectionString: process.env.DATABASE_URL
})
const prisma = new PrismaClient({ adapter })
モデルクエリメソッド
| メソッド | 説明 |
|---|---|
findUnique() | 一意フィールドでレコードを1件検索します |
findUniqueOrThrow() | レコードを1件検索し、見つからない場合はエラーをスローします |
findFirst() | 条件に一致する最初のレコードを検索します |
findFirstOrThrow() | 最初のレコードを検索し、見つからない場合はエラーをスローします |
findMany() | 複数のレコードを検索します |
create() | 新しいレコードを作成します |
createMany() | 複数のレコードを作成します |
createManyAndReturn() | 複数のレコードを作成して返します |
update() | 1件のレコードを更新します |
updateMany() | 複数のレコードを更新します |
updateManyAndReturn() | 複数のレコードを更新して返します |
upsert() | レコードを更新または作成します |
delete() | 1件のレコードを削除します |
deleteMany() | 複数のレコードを削除します |
count() | 条件に一致するレコード数を数えます |
aggregate() | 値を集計します(合計、平均など) |
groupBy() | グループ化して集計します |
クエリオプション
| オプション | 説明 |
|---|---|
where | フィルター条件 |
select | 含めるフィールド |
include | 読み込むリレーション |
omit | 除外するフィールド |
orderBy | 並べ替え順 |
take | 結果の上限 |
skip | 結果をスキップします(ページネーション) |
cursor | カーソルベースのページネーション |
distinct | 一意の値のみ |
クライアントメソッド
| メソッド | 説明 |
|---|---|
$connect() | データベースに明示的に接続します |
$disconnect() | データベースから切断します |
$transaction() | トランザクションを実行します |
$queryRaw() | 生 SQL クエリを実行します |
$executeRaw() | 生 SQL コマンドを実行します |
$on() | イベントを購読します |
$extends() | 拡張機能を追加します |
クイック例
レコードを検索する
// Find by unique field
const user = await prisma.user.findUnique({
where: { email: '[email protected]' }
})
// Find with filter
const users = await prisma.user.findMany({
where: { role: 'ADMIN' },
orderBy: { createdAt: 'desc' },
take: 10
})
レコードを作成する
const user = await prisma.user.create({
data: {
email: '[email protected]',
name: 'Alice',
posts: {
create: { title: 'Hello World' }
}
},
include: { posts: true }
})
レコードを更新する
const user = await prisma.user.update({
where: { id: 1 },
data: { name: 'Alice Smith' }
})
レコードを削除する
await prisma.user.delete({
where: { id: 1 }
})
トランザクション
const [user, post] = await prisma.$transaction([
prisma.user.create({ data: { email: '[email protected]' } }),
prisma.post.create({ data: { title: 'Hello', authorId: 1 } })
])
ルールファイル
詳細な API ドキュメント:
references/constructor.md - PrismaClient constructor options
references/model-queries.md - CRUD operations
references/query-options.md - select, include, omit, where, orderBy
references/filters.md - Filter conditions and operators
references/relations.md - Relation queries and nested operations
references/transactions.md - Transaction API
references/raw-queries.md - $queryRaw, $executeRaw
references/client-methods.md - $connect, $disconnect, $on, $extends
フィルター演算子
| 演算子 | 説明 |
|---|---|
equals | 完全一致 |
not | 等しくない |
in | 配列内にある |
notIn | 配列内にない |
lt、lte | より小さい |
gt、gte | より大きい |
contains | 文字列を含む |
startsWith | 文字列が次の文字列で始まる |
endsWith | 文字列が次の文字列で終わる |
mode | 大文字と小文字の区別 |
リレーションフィルター
| 演算子 | 説明 |
|---|---|
some | 少なくとも1件の関連レコードが一致します |
every | すべての関連レコードが一致します |
none | 一致する関連レコードがありません |
is | 関連レコードが一致します(1対1) |
isNot | 関連レコードが一致しません |
リソース
使用方法
上の表からカテゴリを選び、対応するリファレンスファイルを開いて、実装の詳細と例を確認してください。
コメント
Markdown 対応