24.2k

A Prisma ORM expert provides guidance on schema design, migrations, query optimization, and database operations for PostgreSQL, MySQL, and SQLite. The skill includes diagnosing common issues, applying best practices, and offering tailored solutions for schema structure, migration workflows, query efficiency, connection management, and transaction handling. It is ideal for developers seeking advanced Prisma knowledge to improve database performance, reliability, and maintainability.

npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill prisma-expert

Prisma Expert

You are an expert in Prisma ORM with deep knowledge of schema design, migrations, query optimization, relations modeling, and database operations across PostgreSQL, MySQL, and SQLite.

When Invoked

Step 0: Recommend Specialist and Stop

If the issue is specifically about:

  • Raw SQL optimization: Stop and recommend postgres-expert or mongodb-expert
  • Database server configuration: Stop and recommend database-expert
  • Connection pooling at infrastructure level: Stop and recommend devops-expert

Environment Detection

# Check Prisma version
npx prisma --version 2>/dev/null || echo "Prisma not installed"
# Check database provider
grep "provider" prisma/schema.prisma 2>/dev/null | head -1
# Check for existing migrations
ls -la prisma/migrations/ 2>/dev/null | head -5
# Check Prisma Client generation status
ls -la node_modules/.prisma/client/ 2>/dev/null | head -3

Apply Strategy

  1. Identify the Prisma-specific issue category
  2. Check for common anti-patterns in schema or queries
  3. Apply progressive fixes (minimal → better → complete)
  4. Validate with Prisma CLI and testing

Problem Playbooks

Schema Design

Common Issues:

  • Incorrect relation definitions causing runtime errors
  • Missing indexes for frequently queried fields
  • Enum synchronization issues between schema and database
  • Field type mismatches Diagnosis:
# Validate schema
npx prisma validate
# Check for schema drift
npx prisma migrate diff --from-schema-datamodel prisma/schema.prisma --to-schema-datasource prisma/schema.prisma
# Format schema
npx prisma format

Prioritized Fixes:

  1. Minimal: Fix relation annotations, add missing @relation directives
  2. Better: Add proper indexes with @@index, optimize field types
  3. Complete: Restructure schema with proper normalization, add composite keys Best Practices:
// Good: Explicit relations with clear naming
model User {
  id        String   @id @default(cuid())
  email     String   @unique
  posts     Post[]   @relation("UserPosts")
  profile   Profile? @relation("UserProfile")
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  @@index([email])
  @@map("users")
}
model Post {
  id       String @id @default(cuid())
  title    String
  author   User   @relation("UserPosts", fields: [authorId], references: [id], onDelete: Cascade)
  authorId String
  @@index([authorId])
  @@map("posts")
}

Resources:

Migrations

Common Issues:

  • Migration conflicts in team environments
  • Failed migrations leaving database in inconsistent state
  • Shadow database issues during development
  • Production deployment migration failures Diagnosis:
# Check migration status
npx prisma migrate status
# View pending migrations
ls -la prisma/migrations/
# Check migration history table
# (use database-specific command)

Prioritized Fixes:

  1. Minimal: Reset development database with prisma migrate reset
  2. Better: Manually fix migration SQL, use prisma migrate resolve
  3. Complete: Squash migrations, create baseline for fresh setup Safe Migration Workflow:
# Development
npx prisma migrate dev --name descriptive_name
# Production (never use migrate dev!)
npx prisma migrate deploy
# If migration fails in production
npx prisma migrate resolve --applied "migration_name"
# or
npx prisma migrate resolve --rolled-back "migration_name"

Resources:

Query Optimization

Common Issues:

  • N+1 query problems with relations
  • Over-fetching data with excessive includes
  • Missing select for large models
  • Slow queries without proper indexing Diagnosis:
# Enable query logging
# In schema.prisma or client initialization:
# log: ['query', 'info', 'warn', 'error']
// Enable query events
const prisma = new PrismaClient({
  log: [
    { emit: 'event', level: 'query' },
  ],
});
prisma.$on('query', (e) => {
  console.log('Query: ' + e.query);
  console.log('Duration: ' + e.duration + 'ms');
});

Prioritized Fixes:

  1. Minimal: Add includes for related data to avoid N+1
  2. Better: Use select to fetch only needed fields
  3. Complete: Use raw queries for complex aggregations, implement caching Optimized Query Patterns:
// BAD: N+1 problem
const users = await prisma.user.findMany();
for (const user of users) {
  const posts = await prisma.post.findMany({ where: { authorId: user.id } });
}
// GOOD: Include relations
const users = await prisma.user.findMany({
  include: { posts: true }
});
// BETTER: Select only needed fields
const users = await prisma.user.findMany({
  select: {
    id: true,
    email: true,
    posts: {
      select: { id: true, title: true }
    }
  }
});
// BEST for complex queries: Use $queryRaw
const result = await prisma.$queryRaw`
  SELECT u.id, u.email, COUNT(p.id) as post_count
  FROM users u
  LEFT JOIN posts p ON p.author_id = u.id
  GROUP BY u.id
`;

Resources:

Connection Management

Common Issues:

  • Connection pool exhaustion
  • "Too many connections" errors
  • Connection leaks in serverless environments
  • Slow initial connections Diagnosis:
# Check current connections (PostgreSQL)
psql -c "SELECT count(*) FROM pg_stat_activity WHERE datname = 'your_db';"

Prioritized Fixes:

  1. Minimal: Configure connection limit in DATABASE_URL
  2. Better: Implement proper connection lifecycle management
  3. Complete: Use connection pooler (PgBouncer) for high-traffic apps Connection Configuration:
// For serverless (Vercel, AWS Lambda)
import { PrismaClient } from '@prisma/client';
const globalForPrisma = global as unknown as { prisma: PrismaClient };
export const prisma =
  globalForPrisma.prisma ||
  new PrismaClient({
    log: process.env.NODE_ENV === 'development' ? ['query'] : [],
  });
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;
// Graceful shutdown
process.on('beforeExit', async () => {
  await prisma.$disconnect();
});
# Connection URL with pool settings
DATABASE_URL="postgresql://user:pass@host:5432/db?connection_limit=5&pool_timeout=10"

Resources:

Transaction Patterns

Common Issues:

  • Inconsistent data from non-atomic operations
  • Deadlocks in concurrent transactions
  • Long-running transactions blocking reads
  • Nested transaction confusion Diagnosis:
// Check for transaction issues
try {
  const result = await prisma.$transaction([...]);
} catch (e) {
  if (e.code === 'P2034') {
    console.log('Transaction conflict detected');
  }
}

Transaction Patterns:

// Sequential operations (auto-transaction)
const [user, profile] = await prisma.$transaction([
  prisma.user.create({ data: userData }),
  prisma.profile.create({ data: profileData }),
]);
// Interactive transaction with manual control
const result = await prisma.$transaction(async (tx) => {
  const user = await tx.user.create({ data: userData });
  // Business logic validation
  if (user.email.endsWith('@blocked.com')) {
    throw new Error('Email domain blocked');
  }
  const profile = await tx.profile.create({
    data: { ...profileData, userId: user.id }
  });
  return { user, profile };
}, {
  maxWait: 5000,  // Wait for transaction slot
  timeout: 10000, // Transaction timeout
  isolationLevel: 'Serializable', // Strictest isolation
});
// Optimistic concurrency control
const updateWithVersion = await prisma.post.update({
  where: {
    id: postId,
    version: currentVersion  // Only update if version matches
  },
  data: {
    content: newContent,
    version: { increment: 1 }
  }
});

Resources:

Code Review Checklist

Schema Quality

  • All models have appropriate @id and primary keys
  • Relations use explicit @relation with fields and references
  • Cascade behaviors defined (onDelete, onUpdate)
  • Indexes added for frequently queried fields
  • Enums used for fixed value sets
  • @@map used for table naming conventions

Query Patterns

  • No N+1 queries (relations included when needed)
  • select used to fetch only required fields
  • Pagination implemented for list queries
  • Raw queries used for complex aggregations
  • Proper error handling for database operations

Performance

  • Connection pooling configured appropriately
  • Indexes exist for WHERE clause fields
  • Composite indexes for multi-column queries
  • Query logging enabled in development
  • Slow queries identified and optimized

Migration Safety

  • Migrations tested before production deployment
  • Backward-compatible schema changes (no data loss)
  • Migration scripts reviewed for correctness
  • Rollback strategy documented

Anti-Patterns to Avoid

  1. Implicit Many-to-Many Overhead: Always use explicit join tables for complex relationships
  2. Over-Including: Don't include relations you don't need
  3. Ignoring Connection Limits: Always configure pool size for your environment
  4. Raw Query Abuse: Use Prisma queries when possible, raw only for complex cases
  5. Migration in Production Dev Mode: Never use migrate dev in production

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

GitHub Owner

Owner: sickn33

Files

raw-database-access

<!DOCTYPE html><!--sw5SJKmskKXcYgaZlqSWr--><html lang="en" class="inter_5901b7c6-module__ec5Qua__variable barlow_fd4d59a2-module__LzUlFq__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/docs-static/_next/static/media/0595f7052377a1a2-s.p.0de08f1e.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/docs-static/_next/static/media/6c98c9fb873995d2-s.p.4a6499bc.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/docs-static/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/docs-static/_next/static/media/a083361d37caf3d1-s.p.5c0d0b0d.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/docs-static/_next/static/media/c6e2684784a55443-s.p.ea91da97.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/docs-static/_next/static/chunks/f45bfa5e1e36e9f2.css?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" data-precedence="next"/><link rel="stylesheet" href="/docs-static/_next/static/chunks/a30a283dd3bab507.css?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" data-precedence="next"/><link rel="stylesheet" href="/docs-static/_next/static/chunks/4a484dd8b34fb596.css?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" data-precedence="next"/><style data-precedence="base-ui:low" data-href="base-ui-disable-scrollbar">.base-ui-disable-scrollbar{scrollbar-width:none}.base-ui-disable-scrollbar::-webkit-scrollbar{display:none}</style><link rel="preload" as="script" fetchPriority="low" href="/docs-static/_next/static/chunks/e61d34356ccb264a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn"/><script src="/docs-static/_next/static/chunks/041ac8ee9b6bacd4.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/a641c565676e1eb0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/725b2f3ccf7ad25c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/49202e5eacbd7538.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/turbopack-fabdbf7d86f023ba.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/d6c5d1f5b52e58a1.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/88b80640a1bed930.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/517b930c12eed673.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><script src="/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" async=""></script><link rel="preload" href="https://kit.fontawesome.com/c1448b716e.js" as="script" crossorigin=""/><link rel="preload" href="https://cdn.tolt.io/tolt.js" as="script"/><link rel="preload" href="https://cdn-cookieyes.com/client_data/96980f76df67ad5235fc3f0d/script.js" as="script"/><meta name="next-size-adjust" content=""/><title>Raw queries | Prisma Documentation</title><meta name="description" content="Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API."/><link rel="canonical" href="https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/raw-queries"/><meta property="og:title" content="Raw queries"/><meta property="og:description" content="Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API."/><meta property="og:url" content="https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/raw-queries"/><meta property="og:image" content="https://www.prisma.io/docs/og/orm/prisma-client/using-raw-sql/raw-queries/image.png"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Raw queries"/><meta name="twitter:description" content="Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API."/><meta name="twitter:image" content="https://www.prisma.io/docs/og/orm/prisma-client/using-raw-sql/raw-queries/image.png"/><link rel="icon" href="/docs/favicon.ico?favicon.f8f1f26e.ico" sizes="32x32" type="image/x-icon"/><script src="/docs-static/_next/static/chunks/a6dad97d9634a72d.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" noModule=""></script></head><body class="flex flex-col min-h-screen"><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><!--$--><div data-closed="" role="presentation" hidden="" style="user-select:none;-webkit-user-select:none" class="fixed inset-0 z-50 backdrop-blur-xs bg-fd-overlay data-open:animate-fd-fade-in data-closed:animate-fd-fade-out"></div><!--/$--><div id="nd-notebook-layout" class="grid overflow-x-clip min-h-(--fd-docs-height) transition-[grid-template-columns] auto-cols-auto auto-rows-auto [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-toc-popover-height:0px] [--fd-sidebar-width:0px] [--fd-toc-width:0px]" style="grid-template:&quot;. header header header .&quot;
        &quot;sidebar sidebar toc-popover toc-popover .&quot;
        &quot;sidebar sidebar main toc .&quot; 1fr / minmax(min-content, 1fr) var(--fd-sidebar-col) minmax(0, calc(var(--fd-layout-width,97rem) - var(--fd-sidebar-col) - var(--fd-toc-width))) var(--fd-toc-width) minmax(min-content, 1fr);--fd-docs-row-1:var(--fd-banner-height, 0px);--fd-docs-row-2:calc(var(--fd-docs-row-1) + var(--fd-header-height));--fd-docs-row-3:calc(var(--fd-docs-row-2) + var(--fd-toc-popover-height));--fd-sidebar-col:var(--fd-sidebar-width)"><div data-sidebar-placeholder="" class="sticky z-20 [grid-area:sidebar] pointer-events-none *:pointer-events-auto md:layout:[--fd-sidebar-width:268px] max-md:hidden top-(--fd-docs-row-2) h-[calc(var(--fd-docs-height)-var(--fd-docs-row-2))]"><aside id="nd-sidebar" data-collapsed="false" data-hovered="false" class="absolute flex flex-col w-full start-0 inset-y-0 items-end text-sm duration-250 *:w-(--fd-sidebar-width)"><div class="flex flex-col gap-3 p-4 pb-2 empty:hidden"><button type="button" tabindex="0" data-base-ui-click-trigger="" id="base-ui-_R_1lipfiv9db_" class="flex items-center gap-2 rounded-lg p-2 border bg-fd-secondary/50 text-start text-fd-secondary-foreground transition-colors hover:bg-fd-accent data-open:bg-fd-accent data-open:text-fd-accent-foreground lg:hidden"><div><p class="text-sm font-medium">ORM</p><p class="text-sm text-fd-muted-foreground empty:hidden md:hidden"></p></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevrons-up-down shrink-0 ms-auto size-4 text-fd-muted-foreground" aria-hidden="true"><path d="m7 15 5 5 5-5"></path><path d="m7 9 5-5 5 5"></path></svg></button></div><div data-has-overflow-x="" data-has-overflow-y="" role="presentation" style="position:relative;--scroll-area-corner-height:0px;--scroll-area-corner-width:0px" class="overflow-hidden min-h-0 flex-1"><div data-has-overflow-x="" data-has-overflow-y="" role="presentation" data-id="base-ui-_R_2ipfiv9db_-viewport" tabindex="0" class="size-full rounded-[inherit] p-4 overscroll-contain base-ui-disable-scrollbar" style="overflow:scroll;mask-image:linear-gradient(to bottom, transparent, white 12px, white calc(100% - 12px), transparent)"><p class="inline-flex items-center gap-2 mb-1.5 px-2 mt-6 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Introduction</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm">Prisma ORM</a><p class="inline-flex items-center gap-2 mb-1.5 px-2 mt-6 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Core Concepts</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/core-concepts/data-modeling">Data modeling</a><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Supported databases<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/core-concepts/api-patterns">API patterns</a><p class="inline-flex items-center gap-2 mb-1.5 px-2 mt-6 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Prisma Schema</p><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Overview<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Data Model<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/prisma-schema/introspection">What is introspection?</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/prisma-schema/postgresql-extensions">PostgreSQL extensions</a><p class="inline-flex items-center gap-2 mb-1.5 px-2 mt-6 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Prisma Client</p><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Setup and Configuration<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Queries<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Client Extensions<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Deployment<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Observability and Logging<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Debugging and Troubleshooting<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Special Fields and Types<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Testing<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Type Safety<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-open=""><button type="button" data-panel-open="" tabindex="0" aria-disabled="false" aria-controls="base-ui-_R_2pmipfiv9db_" aria-expanded="true" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Using Raw SQL<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button><div data-open="" id="base-ui-_R_2pmipfiv9db_" style="--collapsible-panel-height:auto;--collapsible-panel-width:auto" class="overflow-hidden [&amp;[hidden]:not([hidden=&#x27;until-found&#x27;])]:hidden h-(--collapsible-panel-height) transition-[height] data-starting-style:h-0 data-ending-style:h-0 relative before:content-[&#x27;&#x27;] before:absolute before:w-px before:inset-y-1 before:bg-fd-border before:start-2.5"><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/orm/prisma-client/using-raw-sql">Write your own SQL</a><a data-active="true" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/orm/prisma-client/using-raw-sql/raw-queries">Raw queries</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/orm/prisma-client/using-raw-sql/typedsql">TypedSQL</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors data-[active=true]:before:content-[&#x27;&#x27;] data-[active=true]:before:bg-fd-primary data-[active=true]:before:absolute data-[active=true]:before:w-px data-[active=true]:before:inset-y-2.5 data-[active=true]:before:start-2.5" style="padding-inline-start:calc(5 * var(--spacing))" href="/docs/orm/prisma-client/using-raw-sql/safeql">SafeQL &amp; Prisma Client</a></div></div><p class="inline-flex items-center gap-2 mb-1.5 px-2 mt-6 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Prisma Migrate</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/prisma-migrate">Overview of Prisma Migrate</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/prisma-migrate/getting-started">Getting started with Prisma Migrate</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/prisma-migrate/understanding-prisma-migrate/mental-model">Understanding Migrations</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/prisma-migrate/understanding-prisma-migrate/migration-histories">Migration histories</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/prisma-migrate/understanding-prisma-migrate/shadow-database">About the shadow database</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/prisma-migrate/understanding-prisma-migrate/limitations-and-known-issues">Limitations and known issues</a><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Workflows<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><p class="inline-flex items-center gap-2 mb-1.5 px-2 mt-6 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">Reference</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/prisma-cli-reference">Prisma CLI reference</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/prisma-client-reference">Prisma Client API</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/prisma-schema-reference">Schema API</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/prisma-config-reference">Config API</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/connection-urls">Connection URLs</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/environment-variables-reference">Environment Variables</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/database-features">Database Features</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/supported-databases">Supported databases</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/system-requirements">System requirements</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/error-reference">Error Reference</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/errors">Prisma Error Reference</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/preview-features/client-preview-features">Prisma Client &amp; Prisma schema</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/reference/preview-features/cli-preview-features">Prisma CLI Preview features</a><p class="inline-flex items-center gap-2 mb-1.5 px-2 mt-6 empty:mb-0 first:mt-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0" style="padding-inline-start:calc(2 * var(--spacing))">More</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/more/best-practices">Best practices</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/orm/more/releases">ORM releases and maturity levels</a><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Comparisons<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Dev environment<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div data-closed=""><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" style="padding-inline-start:calc(2 * var(--spacing))" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none w-full">Troubleshooting<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ms-auto transition-transform -rotate-90" aria-hidden="true" data-icon="true"><path d="m6 9 6 6 6-6"></path></svg></button></div></div><div style="position:absolute;bottom:0;inset-inline-end:0;width:0;height:0"></div><div data-orientation="vertical" data-has-overflow-x="" data-has-overflow-y="" data-id="base-ui-_R_2ipfiv9db_-scrollbar" style="position:absolute;touch-action:none;-webkit-user-select:none;user-select:none;top:0;bottom:var(--scroll-area-corner-height);inset-inline-end:0;--scroll-area-thumb-height:0px" class="flex select-none transition-opacity opacity-0 h-full w-1.5"><div data-orientation="vertical" style="height:var(--scroll-area-thumb-height)" class="relative flex-1 rounded-full bg-fd-border"></div></div></div><div class="flex flex-col p-4 pt-2 gap-3"></div></aside></div><header data-transparent="false" id="nd-subnav" class="sticky [grid-area:header] flex flex-col top-(--fd-docs-row-1) z-10 backdrop-blur-sm transition-colors data-[transparent=false]:bg-fd-background/80 layout:[--fd-header-height:--spacing(14)] lg:layout:[--fd-header-height:--spacing(24)]"><div data-header-body="" class="flex border-b px-4 gap-4 h-14 md:px-6 justify-between"><div class="items-center flex flex-1"><span href="/" class="inline-flex items-center gap-2.5 font-semibold"><a class="mb-0 hover:mb-1 transition-[margin]" href="https://www.prisma.io"><img alt="Prisma" aria-label="Prisma" loading="lazy" width="120" height="32" decoding="async" data-nimg="1" class="dark:hidden" style="color:transparent" src="/docs-static/_next/static/media/logo-dark.f61d6884.svg?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn"/><img alt="Prisma" aria-label="Prisma" loading="lazy" width="90" height="28" decoding="async" data-nimg="1" class="hidden dark:block" style="color:transparent" src="/docs-static/_next/static/media/logo-white.02012a6c.svg?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn"/></a><span class="text-fd-muted-foreground">/</span><a class="group relative inline-block pl-3 -ml-3!" href="/docs"><span class="font-mono text-lg block translate-y-px">docs</span></a></span></div><button type="button" data-search-full="" class="inline-flex items-center gap-2 border bg-fd-secondary/50 p-1.5 text-sm text-fd-muted-foreground transition-colors hover:bg-fd-accent hover:text-fd-accent-foreground flex-1 mx-1 my-auto max-md:hidden rounded-xl max-w-sm ps-2.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search size-4" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg>Search<div class="ms-auto inline-flex gap-0.5"><kbd class="rounded-md border bg-fd-background px-1.5"></kbd><kbd class="rounded-md border bg-fd-background px-1.5">K</kbd></div></button><div class="flex flex-1 items-center justify-end gap-2"><button class="justify-center rounded-md p-2 text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring border hover:bg-fd-accent hover:text-fd-accent-foreground hidden shrink-0 shadow-none md:inline-flex items-center gap-2 h-8 group cursor-pointer"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-messages-square size-4 text-fd-muted-foreground group-hover:text-fd-accent-foreground" aria-hidden="true"><path d="M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"></path><path d="M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1"></path></svg><span>Ask AI</span><div class="ms-auto inline-flex gap-0.5"><kbd class="rounded-md border bg-fd-background px-1.5 text-fd-muted-foreground group-hover:text-fd-accent-foreground">Ctrl</kbd><kbd class="rounded-md border bg-fd-background px-1.5 text-fd-muted-foreground group-hover:text-fd-accent-foreground">I</kbd></div></button><div class="md:hidden"><button class="justify-center rounded-md p-2 font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring border hover:bg-fd-accent hover:text-fd-accent-foreground px-2 py-1.5 text-xs shadow-none inline-flex items-center gap-1.5" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_dr9fiv9db_" data-state="closed" data-slot="drawer-trigger"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-messages-square size-3.5 text-fd-muted-foreground" aria-hidden="true"><path d="M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"></path><path d="M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1"></path></svg><span>Ask AI</span></button></div><div class="flex items-center gap-2 max-md:hidden"><button type="button" id="radix-_R_16r9fiv9db_" aria-haspopup="menu" aria-expanded="false" data-state="closed" class="flex items-center gap-1.5 rounded-md border bg-fd-background px-3 py-1.5 text-sm font-medium text-fd-foreground hover:bg-fd-accent transition-colors cursor-pointer">v7<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-4 text-fd-muted-foreground" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div class="flex items-center gap-2 max-md:hidden"><a href="https://pris.ly/github?utm_source=docs&amp;utm_medium=navbar" rel="noreferrer noopener" target="_blank" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [&amp;_svg]:size-4.5 text-fd-muted-foreground" aria-label="GitHub" data-active="false"><svg role="img" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg></a><a href="https://pris.ly/discord?utm_source=docs&amp;utm_medium=navbar" rel="noreferrer noopener" target="_blank" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [&amp;_svg]:size-4.5 text-fd-muted-foreground" aria-label="Join Discord" data-active="false"><svg viewBox="0 -28.5 256 256" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid" class="size-5"><path d="M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z" fill="currentColor" fill-rule="nonzero"></path></svg></a></div><div class="inline-flex items-center rounded-full border p-1" data-theme-toggle=""><button aria-label="light" class="size-6.5 rounded-full p-1.5 text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun size-full" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg></button><button aria-label="dark" class="size-6.5 rounded-full p-1.5 text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon size-full" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button><button aria-label="system" class="size-6.5 rounded-full p-1.5 text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-airplay size-full" aria-hidden="true"><path d="M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1"></path><path d="m12 15 5 6H7Z"></path></svg></button></div></div><div class="flex items-center md:hidden"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground [&amp;_svg]:size-4.5 p-2" data-search="" aria-label="Open Search"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></button><button aria-label="Open Sidebar" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground [&amp;_svg]:size-4.5 p-2 -me-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></button></div></div></div><div class="flex flex-row items-end gap-6 overflow-x-auto border-b px-6 h-10 max-lg:hidden" data-header-tabs=""><a class="inline-flex border-b-2 border-transparent transition-colors items-center pb-1.5 font-medium gap-2 text-fd-muted-foreground text-sm text-nowrap hover:text-fd-accent-foreground data-[active=true]:border-fd-primary data-[active=true]:text-fd-primary" data-active="false" href="/docs">Getting Started</a><a class="inline-flex border-b-2 border-transparent transition-colors items-center pb-1.5 font-medium gap-2 text-fd-muted-foreground text-sm text-nowrap hover:text-fd-accent-foreground data-[active=true]:border-fd-primary data-[active=true]:text-fd-primary" data-active="true" href="/docs/orm">ORM</a><a class="inline-flex border-b-2 border-transparent transition-colors items-center pb-1.5 font-medium gap-2 text-fd-muted-foreground text-sm text-nowrap hover:text-fd-accent-foreground data-[active=true]:border-fd-primary data-[active=true]:text-fd-primary" data-active="false" href="/docs/postgres">Postgres</a><a class="inline-flex border-b-2 border-transparent transition-colors items-center pb-1.5 font-medium gap-2 text-fd-muted-foreground text-sm text-nowrap hover:text-fd-accent-foreground data-[active=true]:border-fd-primary data-[active=true]:text-fd-primary" data-active="false" href="/docs/cli">CLI</a><a class="inline-flex border-b-2 border-transparent transition-colors items-center pb-1.5 font-medium gap-2 text-fd-muted-foreground text-sm text-nowrap hover:text-fd-accent-foreground data-[active=true]:border-fd-primary data-[active=true]:text-fd-primary" data-active="false" href="/docs/guides">Guides</a><button type="button" tabindex="0" data-base-ui-click-trigger="" id="base-ui-_R_7l9fiv9db_" class="p-1 has-data-[active=true]:text-fd-primary data-[state=open]:text-fd-accent-foreground focus-visible:outline-none inline-flex border-b-2 border-transparent transition-colors items-center pb-1.5 font-medium gap-2 text-fd-muted-foreground text-sm text-nowrap hover:text-fd-accent-foreground">More<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-3" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div></header><script type="application/ld+json">{"@context":"https://schema.org","@type":"TechArticle","headline":"Raw queries","description":"Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API.","url":"https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/raw-queries","author":{"@type":"Organization","name":"Prisma Data, Inc.","url":"https://www.prisma.io"},"publisher":{"@type":"Organization","name":"Prisma","url":"https://www.prisma.io","logo":{"@type":"ImageObject","url":"https://www.prisma.io/logo.png"}},"mainEntityOfPage":{"@type":"WebPage","@id":"https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/raw-queries"}}</script><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.prisma.io"},{"@type":"ListItem","position":2,"name":"Orm","item":"https://www.prisma.io/docs/orm"},{"@type":"ListItem","position":3,"name":"Prisma client","item":"https://www.prisma.io/docs/orm/prisma-client"},{"@type":"ListItem","position":4,"name":"Using raw sql","item":"https://www.prisma.io/docs/orm/prisma-client/using-raw-sql"},{"@type":"ListItem","position":5,"name":"Raw queries","item":"https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/raw-queries"}]}</script><div data-closed="" data-toc-popover="" class="sticky top-(--fd-docs-row-2) z-10 [grid-area:toc-popover] h-(--fd-toc-popover-height) xl:hidden max-xl:layout:[--fd-toc-popover-height:--spacing(10)]"><header class="border-b backdrop-blur-sm transition-colors bg-fd-background/80"><button type="button" tabindex="0" aria-disabled="false" aria-expanded="false" data-toc-popover-trigger="" class="flex w-full h-10 items-center text-sm text-fd-muted-foreground gap-2.5 px-4 py-2.5 text-start focus-visible:outline-none [&amp;_svg]:size-4 md:px-6"><svg role="progressbar" viewBox="0 0 24 24" aria-valuenow="0" aria-valuemin="0" aria-valuemax="1" class="shrink-0"><circle cx="12" cy="12" r="11" fill="none" stroke-width="2" class="stroke-current/25"></circle><circle cx="12" cy="12" r="11" fill="none" stroke-width="2" stroke="currentColor" stroke-dasharray="69.11503837897544" stroke-dashoffset="69.11503837897544" stroke-linecap="round" transform="rotate(-90 12 12)" class="transition-all"></circle></svg><span class="grid flex-1 *:my-auto *:row-start-1 *:col-start-1"><span class="truncate transition-all">Raw queries</span><span class="truncate transition-all opacity-0 translate-y-full pointer-events-none"></span></span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down shrink-0 transition-transform mx-0.5" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></header></div><article id="nd-page" data-full="false" class="flex flex-col [grid-area:main] px-4 py-6 gap-4 md:px-6 md:pt-8 xl:px-8 xl:pt-14 *:max-w-225"><div class="flex items-center gap-1.5 text-sm text-fd-muted-foreground"><span class="truncate text-fd-primary font-medium">Using Raw SQL</span></div><div class="flex flex-col md:flex-row items-start gap-4 pt-2 pb-1 md:justify-between"><h1 class="text-[1.75em] font-semibold">Raw queries</h1><div class="flex flex-row gap-2 items-center"><button class="inline-flex items-center justify-center rounded-md p-2 font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring border bg-fd-secondary text-fd-secondary-foreground hover:bg-fd-accent hover:text-fd-accent-foreground px-2 py-1.5 text-xs gap-2 [&amp;_svg]:size-3.5 [&amp;_svg]:text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg>Copy Markdown</button><button type="button" tabindex="0" data-base-ui-click-trigger="" id="base-ui-_R_t37lfivpfiv9db_" class="inline-flex items-center justify-center rounded-md p-2 font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring border bg-fd-secondary text-fd-secondary-foreground hover:bg-fd-accent hover:text-fd-accent-foreground px-2 py-1.5 text-xs gap-2">Open<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down size-3.5 text-fd-muted-foreground" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div></div><p class="mb-2 text-lg text-fd-muted-foreground">Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API</p><div class="prose flex-1"><div role="alert" class="relative w-full rounded-md border p-4 gap-3 type-text-sm [&amp;&gt;svg]:left-4 [&amp;&gt;svg]:top-4 [&amp;&gt;svg]:w-5 [&amp;&gt;svg]:h-5 alert-alert flex items-start [&amp;&gt;i]:mt-0.5 bg-background-warning border-none text-foreground-warning [&amp;&gt;svg]:text-foreground-warning"><i class="fa-duotone fa-solid fa-circle-exclamation"></i><div class="[&amp;&gt;*]:first:mt-0 [&amp;&gt;*]:last:mb-0 [&amp; strong]:text-inherit"><p>We recommend using <a href="/docs/orm/prisma-client/using-raw-sql">TypedSQL</a> for type-safe SQL queries instead of the raw queries described below.</p></div></div>
<p>Prisma Client supports sending raw queries to your database. You may wish to use raw queries if:</p>
<ul>
<li>you want to run a heavily optimized query</li>
<li>you require a feature that Prisma Client does not yet support (please <a href="https://github.com/prisma/prisma/issues/new/choose" rel="noreferrer noopener" target="_blank">consider raising an issue</a>)</li>
</ul>
<p>Raw queries are available for all relational databases Prisma ORM supports, as well as MongoDB. For more details, see the relevant sections:</p>
<ul>
<li><a href="#raw-queries-with-relational-databases">Raw queries with relational databases</a></li>
<li><a href="#raw-queries-with-mongodb">Raw queries with MongoDB</a></li>
</ul>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="raw-queries-with-relational-databases"><a data-card="" href="#raw-queries-with-relational-databases" class="peer">Raw queries with relational databases</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
<p>For relational databases, Prisma Client exposes four methods that allow you to send raw queries. You can use:</p>
<ul>
<li><code>$queryRaw</code> to return actual records (for example, using <code>SELECT</code>).</li>
<li><code>$executeRaw</code> to return a count of affected rows (for example, after an <code>UPDATE</code> or <code>DELETE</code>).</li>
<li><code>$queryRawUnsafe</code> to return actual records (for example, using <code>SELECT</code>) using a raw string.</li>
<li><code>$executeRawUnsafe</code> to return a count of affected rows (for example, after an <code>UPDATE</code> or <code>DELETE</code>) using a raw string.</li>
</ul>
<p>The methods with &quot;Unsafe&quot; in the name are a lot more flexible but are at <strong>significant risk of making your code vulnerable to SQL injection</strong>.</p>
<p>The other two methods are safe to use with a simple template tag, no string building, and no concatenation. <strong>However</strong>, caution is required for more complex use cases as it is still possible to introduce SQL injection if these methods are used in certain ways. For more details, see the <a href="#sql-injection-prevention">SQL injection prevention</a> section below.</p>
<blockquote>
<p><strong>Note</strong>: All methods in the above list can only run <strong>one</strong> query at a time. You cannot append a second query - for example, calling any of them with <code>select 1; select 2;</code> will not work.</p>
</blockquote>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="queryraw"><a data-card="" href="#queryraw" class="peer"><code>$queryRaw</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p><code>$queryRaw</code> returns actual database records. For example, the following <code>SELECT</code> query returns all fields for each record in the <code>User</code> table:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM User`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<p>The method is implemented as a <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates" rel="noreferrer noopener" target="_blank">tagged template</a>, which allows you to pass a template literal where you can easily insert your <a href="#using-variables">variables</a>. In turn, Prisma Client creates prepared statements that are safe from SQL injections:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> email</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;emelie@prisma.io&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM User WHERE email = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">email</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<p>You can also use the <a href="#tagged-template-helpers"><code>Prisma.sql</code></a> helper, in fact, the <code>$queryRaw</code> method will <strong>only accept</strong> a template string or the <code>Prisma.sql</code> helper:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> email</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;emelie@prisma.io&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sql</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM User WHERE email = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">email</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre></div></figure>
<div role="alert" class="relative w-full rounded-md border p-4 gap-3 type-text-sm [&amp;&gt;svg]:left-4 [&amp;&gt;svg]:top-4 [&amp;&gt;svg]:w-5 [&amp;&gt;svg]:h-5 alert-alert flex items-start [&amp;&gt;i]:mt-0.5 bg-background-warning border-none text-foreground-warning [&amp;&gt;svg]:text-foreground-warning"><i class="fa-duotone fa-solid fa-circle-exclamation"></i><div class="[&amp;&gt;*]:first:mt-0 [&amp;&gt;*]:last:mb-0 [&amp; strong]:text-inherit"><p>If you use string building to incorporate untrusted input into queries passed to this method, then you open up the possibility for SQL injection attacks. SQL injection attacks can expose your data to modification or deletion. The preferred mechanism would be to include the text of the query at the point that you run this method. For more information on this risk and also examples of how to prevent it, see the <a href="#sql-injection-prevention">SQL injection prevention</a> section below.</p></div></div>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="considerations"><a data-card="" href="#considerations" class="peer">Considerations</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p>Be aware that:</p>
<ul>
<li>
<p>Template variables cannot be used inside SQL string literals. For example, the following query would <strong>not</strong> work:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;Bob&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT &#x27;My name is ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}&#x27;;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<p>Instead, you can either pass the whole string as a variable, or use string concatenation:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;My name is Bob&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">};`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;Bob&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT &#x27;My name is &#x27; || ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">};`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
</li>
<li>
<p>Template variables can only be used for data values (such as <code>email</code> in the example above). Variables cannot be used for identifiers such as column names, table names or database names, or for SQL keywords. For example, the following two queries would <strong>not</strong> work:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> myTable</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;user&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">myTable</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">};`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> ordering</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;desc&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM Table ORDER BY ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">ordering</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">};`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
</li>
<li>
<p>Prisma maps any database values returned by <code>$queryRaw</code> and <code>$queryRawUnsafe</code> to their corresponding JavaScript types. <a href="#raw-query-type-mapping">Learn more</a>.</p>
</li>
<li>
<p><code>$queryRaw</code> does not support dynamic table names in PostgreSQL databases. <a href="#dynamic-table-names-in-postgresql">Learn more</a></p>
</li>
</ul>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="return-type"><a data-card="" href="#return-type" class="peer">Return type</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p><code>$queryRaw</code> returns an array. Each object corresponds to a database record:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">email</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;emelie@prisma.io&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Emelie&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  { </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">id</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">email</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;yin@prisma.io&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">name</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Yin&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">]</span></span></code></pre></div></figure>
<p>You can also <a href="#typing-queryraw-results">type the results of <code>$queryRaw</code></a>.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="signature"><a data-card="" href="#signature" class="peer">Signature</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$queryRaw&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">T</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> unknown</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TemplateStringsArray</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Prisma</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Sql</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">...</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">values</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> any</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> PrismaPromise</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;;</span></span></code></pre></div></figure>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="typing-queryraw-results"><a data-card="" href="#typing-queryraw-results" class="peer">Typing <code>$queryRaw</code> results</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p><code>PrismaPromise&lt;T&gt;</code> uses a <a href="https://www.typescriptlang.org/docs/handbook/generics.html" rel="noreferrer noopener" target="_blank">generic type parameter <code>T</code></a>. You can determine the type of <code>T</code> when you invoke the <code>$queryRaw</code> method. In the following example, <code>$queryRaw</code> returns <code>User[]</code>:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// import the generated `User` type from the `@prisma/client` module</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { User } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;@prisma/client&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">User</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[]&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM User`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// result is of type: `User[]`</span></span></code></pre></div></figure>
<blockquote>
<p><strong>Note</strong>: If you do not provide a type, <code>$queryRaw</code> defaults to <code>unknown</code>.</p>
</blockquote>
<p>If you are selecting <strong>specific fields</strong> of the model or want to include relations, refer to the documentation about <a href="/docs/orm/prisma-client/type-safety/operating-against-partial-structures-of-model-types#problem-using-variations-of-the-generated-model-type">leveraging Prisma Client&#x27;s generated types</a> if you want to make sure that the results are properly typed.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="type-caveats-when-using-raw-sql"><a data-card="" href="#type-caveats-when-using-raw-sql" class="peer">Type caveats when using raw SQL</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p>When you type the results of <code>$queryRaw</code>, the raw data might not always match the suggested TypeScript type. For example, the following Prisma model includes a <code>Boolean</code> field named <code>published</code>:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark has-highlighted" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">model</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Post</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  id        </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Int</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">     @id</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">autoincrement</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">())</span></span>
<span class="line highlighted"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  published </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Boolean</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> @default</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  title     </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  content   </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">String</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">?</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div></figure>
<p>The following query returns all posts. It then prints out the value of the <code>published</code> field for each <code>Post</code>:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Post</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[]&gt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM Post`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">result.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">forEach</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">((</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">x</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(x.published);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">});</span></span></code></pre></div></figure>
<p>For regular CRUD queries, the Prisma Client query engine standardizes the return type for all databases. <strong>Using the raw queries does not</strong>. If the database provider is MySQL, the returned values are <code>1</code> or <code>0</code>. However, if the database provider is PostgreSQL, the values are <code>true</code> or <code>false</code>.</p>
<blockquote>
<p><strong>Note</strong>: Prisma sends JavaScript integers to PostgreSQL as <code>INT8</code>. This might conflict with your user-defined functions that accept only <code>INT4</code> as input. If you use <code>$queryRaw</code> in conjunction with a PostgreSQL database, update the input types to <code>INT8</code>, or cast your query parameters to <code>INT4</code>.</p>
</blockquote>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="dynamic-table-names-in-postgresql"><a data-card="" href="#dynamic-table-names-in-postgresql" class="peer">Dynamic table names in PostgreSQL</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p><a href="#considerations">It is not possible to interpolate table names</a>. This means that you cannot use dynamic table names with <code>$queryRaw</code>. Instead, you must use <a href="#queryrawunsafe"><code>$queryRawUnsafe</code></a>, as follows:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> userTable </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;User&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">let</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> result </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRawUnsafe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">userTable</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre></div></figure>
<p>Note that if you use <code>$queryRawUnsafe</code> in conjunction with user inputs, you risk SQL injection attacks. <a href="#queryrawunsafe">Learn more</a>.</p>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="queryrawunsafe"><a data-card="" href="#queryrawunsafe" class="peer"><code>$queryRawUnsafe()</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p>The <code>$queryRawUnsafe()</code> method allows you to pass a raw string (or template string) to the database.</p>
<div role="alert" class="relative w-full rounded-md border p-4 gap-3 type-text-sm [&amp;&gt;svg]:left-4 [&amp;&gt;svg]:top-4 [&amp;&gt;svg]:w-5 [&amp;&gt;svg]:h-5 alert-alert flex items-start [&amp;&gt;i]:mt-0.5 bg-background-warning border-none text-foreground-warning [&amp;&gt;svg]:text-foreground-warning"><i class="fa-duotone fa-solid fa-circle-exclamation"></i><div class="[&amp;&gt;*]:first:mt-0 [&amp;&gt;*]:last:mb-0 [&amp; strong]:text-inherit"><p>If you use this method with user inputs (in other words, <code>SELECT * FROM table WHERE columnName = ${userInput}</code>), then you open up the possibility for SQL injection attacks. SQL injection attacks can expose your data to modification or deletion.<br/><br/></p><p>Wherever possible you should use the <code>$queryRaw</code> method instead. When used correctly <code>$queryRaw</code> method is significantly safer but note that the <code>$queryRaw</code> method can also be made vulnerable in certain circumstances. For more information, see the <a href="#sql-injection-prevention">SQL injection prevention</a> section below.</p></div></div>
<p>The following query returns all fields for each record in the <code>User</code> table:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// import the generated `User` type from the `@prisma/client` module</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { User } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;@prisma/client&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRawUnsafe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;SELECT * FROM User&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre></div></figure>
<p>You can also run a parameterized query. The following example returns all users whose email contains the string <code>emelie@prisma.io</code>:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRawUnsafe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;SELECT * FROM users WHERE email = $1&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;emelie@prisma.io&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre></div></figure>
<blockquote>
<p><strong>Note</strong>: Prisma sends JavaScript integers to PostgreSQL as <code>INT8</code>. This might conflict with your user-defined functions that accept only <code>INT4</code> as input. If you use a parameterized <code>$queryRawUnsafe</code> query in conjunction with a PostgreSQL database, update the input types to <code>INT8</code>, or cast your query parameters to <code>INT4</code>.</p>
</blockquote>
<p>For more details on using parameterized queries, see the <a href="#parameterized-queries">parameterized queries</a> section below.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="signature-1"><a data-card="" href="#signature-1" class="peer">Signature</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$queryRawUnsafe&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">T</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> unknown</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">...</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">values</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> any</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> PrismaPromise</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">T</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;;</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="executeraw"><a data-card="" href="#executeraw" class="peer"><code>$executeRaw</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p><code>$executeRaw</code> returns the <em>number of rows affected by a database operation</em>, such as <code>UPDATE</code> or <code>DELETE</code>. This function does <strong>not</strong> return database records. The following query updates records in the database and returns a count of the number of records that were updated:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`UPDATE User SET active = true WHERE emailValidated = true`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<p>The method is implemented as a <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates" rel="noreferrer noopener" target="_blank">tagged template</a>, which allows you to pass a template literal where you can easily insert your <a href="#using-variables">variables</a>. In turn, Prisma Client creates prepared statements that are safe from SQL injections:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> emailValidated</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> active</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> number</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`UPDATE User SET active = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">active</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">} WHERE emailValidated = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">emailValidated</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">};`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<div role="alert" class="relative w-full rounded-md border p-4 gap-3 type-text-sm [&amp;&gt;svg]:left-4 [&amp;&gt;svg]:top-4 [&amp;&gt;svg]:w-5 [&amp;&gt;svg]:h-5 alert-alert flex items-start [&amp;&gt;i]:mt-0.5 bg-background-warning border-none text-foreground-warning [&amp;&gt;svg]:text-foreground-warning"><i class="fa-duotone fa-solid fa-circle-exclamation"></i><div class="[&amp;&gt;*]:first:mt-0 [&amp;&gt;*]:last:mb-0 [&amp; strong]:text-inherit"><p>If you use string building to incorporate untrusted input into queries passed to this method, then you open up the possibility for SQL injection attacks. SQL injection attacks can expose your data to modification or deletion. The preferred mechanism would be to include the text of the query at the point that you run this method. For more information on this risk and also examples of how to prevent it, see the <a href="#sql-injection-prevention">SQL injection prevention</a> section below.</p></div></div>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="considerations-1"><a data-card="" href="#considerations-1" class="peer">Considerations</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p>Be aware that:</p>
<ul>
<li>
<p><code>$executeRaw</code> does not support multiple queries in a single string (for example, <code>ALTER TABLE</code> and <code>CREATE TABLE</code> together).</p>
</li>
<li>
<p>Prisma Client submits prepared statements, and prepared statements only allow a subset of SQL statements. For example, <code>START TRANSACTION</code> is not permitted. You can learn more about <a href="https://dev.mysql.com/doc/refman/8.0/en/sql-prepared-statements.html" rel="noreferrer noopener" target="_blank">the syntax that MySQL allows in Prepared Statements here</a>.</p>
</li>
<li>
<p><a href="https://www.postgresql.org/docs/current/sql-prepare.html" rel="noreferrer noopener" target="_blank"><code>PREPARE</code> does not support <code>ALTER</code></a> - see the <a href="#alter-limitation-postgresql">workaround</a>.</p>
</li>
<li>
<p>Template variables cannot be used inside SQL string literals. For example, the following query would <strong>not</strong> work:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;Bob&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`UPDATE user SET greeting = &#x27;My name is ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}&#x27;;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<p>Instead, you can either pass the whole string as a variable, or use string concatenation:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;My name is Bob&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`UPDATE user SET greeting = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">};`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> name</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;Bob&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`UPDATE user SET greeting = &#x27;My name is &#x27; || ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">};`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
</li>
<li>
<p>Template variables can only be used for data values (such as <code>email</code> in the example above). Variables cannot be used for identifiers such as column names, table names or database names, or for SQL keywords. For example, the following two queries would <strong>not</strong> work:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> myTable</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;user&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`UPDATE ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">myTable</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">} SET active = true;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> ordering</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;desc&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`UPDATE User SET active = true ORDER BY ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">desc</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">};`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
</li>
</ul>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="return-type-1"><a data-card="" href="#return-type-1" class="peer">Return type</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p><code>$executeRaw</code> returns a <code>number</code>.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="signature-2"><a data-card="" href="#signature-2" class="peer">Signature</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$executeRaw&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">T</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> unknown</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> TemplateStringsArray</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> |</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> Prisma</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Sql</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">...</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">values</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> any</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> PrismaPromise</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&lt;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;;</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="executerawunsafe"><a data-card="" href="#executerawunsafe" class="peer"><code>$executeRawUnsafe()</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p>The <code>$executeRawUnsafe()</code> method allows you to pass a raw string (or template string) to the database. Like <code>$executeRaw</code>, it does <strong>not</strong> return database records, but returns the number of rows affected.</p>
<div role="alert" class="relative w-full rounded-md border p-4 gap-3 type-text-sm [&amp;&gt;svg]:left-4 [&amp;&gt;svg]:top-4 [&amp;&gt;svg]:w-5 [&amp;&gt;svg]:h-5 alert-alert flex items-start [&amp;&gt;i]:mt-0.5 bg-background-warning border-none text-foreground-warning [&amp;&gt;svg]:text-foreground-warning"><i class="fa-duotone fa-solid fa-circle-exclamation"></i><div class="[&amp;&gt;*]:first:mt-0 [&amp;&gt;*]:last:mb-0 [&amp; strong]:text-inherit"><p>If you use this method with user inputs (in other words, <code>SELECT * FROM table WHERE columnName = ${userInput}</code>), then you open up the possibility for SQL injection attacks. SQL injection attacks can expose your data to modification or deletion.<br/><br/></p><p>Wherever possible you should use the <code>$executeRaw</code> method instead. When used correctly <code>$executeRaw</code> method is significantly safer but note that the <code>$executeRaw</code> method can also be made vulnerable in certain circumstances. For more information, see the <a href="#sql-injection-prevention">SQL injection prevention</a> section below.</p></div></div>
<p>The following example uses a template string to update records in the database. It then returns a count of the number of records that were updated:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> emailValidated</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> active</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRawUnsafe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">  `UPDATE User SET active = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">active</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">} WHERE emailValidated = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">emailValidated</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre></div></figure>
<p>The same can be written as a parameterized query:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRawUnsafe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">  &quot;UPDATE User SET active = $1 WHERE emailValidated = $2&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">  &quot;yin@prisma.io&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">  true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre></div></figure>
<p>For more details on using parameterized queries, see the <a href="#parameterized-queries">parameterized queries</a> section below.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="signature-3"><a data-card="" href="#signature-3" class="peer">Signature</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$executeRawUnsafe&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">T</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> unknown</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">...</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">values</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> any</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[])</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> PrismaPromise</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&lt;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">number</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;;</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="raw-query-type-mapping"><a data-card="" href="#raw-query-type-mapping" class="peer">Raw query type mapping</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p>Prisma maps any database values returned by <code>$queryRaw</code> and <code>$queryRawUnsafe</code>to their corresponding <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures" rel="noreferrer noopener" target="_blank">JavaScript types</a>. This behavior is the same as for regular Prisma query methods like <code>findMany()</code>.</p>
<p>As an example, take a raw query that selects columns with <code>BigInt</code>, <code>Bytes</code>, <code>Decimal</code> and <code>Date</code> types from a table:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT bigint, bytes, decimal, date FROM &quot;Table&quot;;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">{ </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">bigint:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> BigInt</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">&quot;123&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">,</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> bytes:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> &lt;</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">Buffer</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 01</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 0</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">2&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">), decimal: Decimal(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">&quot;12.34&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">), date: Date(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">&quot;&lt;some_date&gt;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) }</span></span></code></pre></div></figure>
<p>In the <code>result</code> object, the database values have been mapped to the corresponding JavaScript types.</p>
<p>The following table shows the conversion between types used in the database and the JavaScript type returned by the raw query:</p>
<div class="relative w-full overflow-auto"><table class="w-full caption-bottom type-text-sm"><thead class="[&amp;_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-10 px-3 py-4 text-left align-middle type-text-sm-strong text-foreground-neutral [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] only:text-xl bg-background-neutral-weaker">Database type</th><th class="h-10 px-3 py-4 text-left align-middle type-text-sm-strong text-foreground-neutral [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] only:text-xl bg-background-neutral-weaker">JavaScript type</th></tr></thead><tbody class="[&amp;_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">Text</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>String</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">32-bit integer</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>Number</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">32-bit unsigned integer</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>BigInt</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">Floating point number</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>Number</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">Double precision number</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>Number</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">64-bit integer</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>BigInt</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">Decimal / numeric</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>Decimal</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">Bytes</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>Uint8Array</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">Json</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>Object</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">DateTime</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>Date</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">Date</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>Date</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">Time</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>Date</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">Uuid</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>String</code></td></tr><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default">Xml</td><td class="px-3 py-4 align-middle [&amp;:has([role=checkbox])]:pr-0 [&amp;&gt;[role=checkbox]]:translate-y-[2px] bg-background-default"><code>String</code></td></tr></tbody></table></div>
<p>Note that the exact name for each database type will vary between databases – for example, the boolean type is known as <code>boolean</code> in PostgreSQL and <code>STRING</code> in CockroachDB. See the <a href="/docs/orm/reference/prisma-schema-reference#model-field-scalar-types">Scalar types reference</a> for full details of type names for each database.</p>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="raw-query-typecasting-behavior"><a data-card="" href="#raw-query-typecasting-behavior" class="peer">Raw query typecasting behavior</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p>Raw queries with Prisma Client might require parameters to be in the expected types of the SQL function or query. Prisma Client does not do subtle, implicit casts.</p>
<p>As an example, take the following query using PostgreSQL&#x27;s <code>LENGTH</code> function, which only accepts the <code>text</code> type as an input:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT LENGTH(${</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">42</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">});`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<p>This query returns an error:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">//</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ERROR:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> function</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> length</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">integer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">) </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">does</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> not</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> exist</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">//</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> HINT:</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> No</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> function</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> matches</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> the</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> given</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> and</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> argument</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> types.</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> You</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> might</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> need</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> to</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> add</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> explicit</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> type</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> casts.</span></span></code></pre></div></figure>
<p>The solution in this case is to explicitly cast <code>42</code> to the <code>text</code> type:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT LENGTH(${</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">42</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}::text);`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="transactions"><a data-card="" href="#transactions" class="peer">Transactions</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p>You can use <code>.$executeRaw()</code> and <code>.$queryRaw()</code> inside a <a href="/docs/orm/prisma-client/queries/transactions">transaction</a>.</p>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="using-variables"><a data-card="" href="#using-variables" class="peer">Using variables</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p><code>$executeRaw</code> and <code>$queryRaw</code> are implemented as <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates" rel="noreferrer noopener" target="_blank"><strong>tagged templates</strong></a>. Tagged templates are the recommended way to use variables with raw SQL in the Prisma Client.</p>
<p>The following example includes a placeholder named <code>${userId}</code>:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> userId</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 42</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM User WHERE id = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">userId</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">};`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<p>✔ Benefits of using the tagged template versions of <code>$queryRaw</code> and <code>$executeRaw</code> include:</p>
<ul>
<li>Prisma Client escapes all variables.</li>
<li>Tagged templates are database-agnostic - you do not need to remember if variables should be written as <code>$1</code> (PostgreSQL) or <code>?</code> (MySQL).</li>
<li><a href="https://github.com/blakeembrey/sql-template-tag" rel="noreferrer noopener" target="_blank">SQL Template Tag</a> give you access to <a href="#tagged-template-helpers">useful helpers</a>.</li>
<li>Embedded, named variables are easier to read.</li>
</ul>
<blockquote>
<p><strong>Note</strong>: You cannot pass a table or column name into a tagged template placeholder. For example, you cannot <code>SELECT ?</code> and pass in <code>*</code> or <code>id, name</code> based on some condition.</p>
</blockquote>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="tagged-template-helpers"><a data-card="" href="#tagged-template-helpers" class="peer">Tagged template helpers</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p>Prisma Client specifically uses <a href="https://github.com/blakeembrey/sql-template-tag" rel="noreferrer noopener" target="_blank">SQL Template Tag</a>, which exposes a number of helpers. For example, the following query uses <code>join()</code> to pass in a list of IDs:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { Prisma } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;@prisma/client&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> ids</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">3</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">5</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">10</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">20</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">];</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM User WHERE id IN (${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Prisma</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">join</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">(</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">ids</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">)</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">})`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<p>The following example uses the <code>empty</code> and <code>sql</code> helpers to change the query depending on whether <code>userName</code> is empty:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> { Prisma } </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;@prisma/client&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> userName</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT * FROM User ${</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  userName</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> ?</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Prisma</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sql</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`WHERE name = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">userName</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> :</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Prisma</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">.</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">empty</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"> // Cannot use &quot;&quot; or NULL here!</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="alter-limitation-postgresql"><a data-card="" href="#alter-limitation-postgresql" class="peer"><code>ALTER</code> limitation (PostgreSQL)</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p>PostgreSQL <a href="https://www.postgresql.org/docs/current/sql-prepare.html" rel="noreferrer noopener" target="_blank">does not support using <code>ALTER</code> in a prepared statement</a>, which means that the following queries <strong>will not work</strong>:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`ALTER USER prisma WITH PASSWORD &quot;${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">password</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(Prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sql</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`ALTER USER prisma WITH PASSWORD &quot;${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">password</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre></div></figure>
<p>You can use the following query, but be aware that this is potentially <strong>unsafe</strong> as <code>${password}</code> is not escaped:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRawUnsafe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;ALTER USER prisma WITH PASSWORD &quot;$1&quot;&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, password})</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="unsupported-types"><a data-card="" href="#unsupported-types" class="peer">Unsupported types</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p><a href="/docs/orm/reference/prisma-schema-reference#unsupported"><code>Unsupported</code> types</a> need to be cast to Prisma Client supported types before using them in <code>$queryRaw</code> or <code>$queryRawUnsafe</code>. For example, take the following model, which has a <code>location</code> field with an <code>Unsupported</code> type:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">model Country {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  location  </span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Unsupported</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;point&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">?</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div></figure>
<p>The following query on the unsupported field will <strong>not</strong> work:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT location FROM Country;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<p>Instead, cast <code>Unsupported</code> fields to any supported Prisma Client type, <strong>if your <code>Unsupported</code> column supports the cast</strong>.</p>
<p>The most common type you may want to cast your <code>Unsupported</code> column to is <code>String</code>. For example, on PostgreSQL, this would map to the <code>text</code> type:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT location::text FROM Country;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<p>The database will thus provide a <code>String</code> representation of your data which Prisma Client supports.</p>
<p>For details of supported Prisma types, see the <a href="/docs/orm/core-concepts/supported-databases">Prisma connector overview</a> for the relevant database.</p>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="sql-injection-prevention"><a data-card="" href="#sql-injection-prevention" class="peer">SQL injection prevention</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
<p>The ideal way to avoid SQL injection in Prisma Client is to use the ORM models to perform queries wherever possible.</p>
<p>Where this is not possible and raw queries are required, Prisma Client provides various raw methods, but it is important to use these methods safely.</p>
<p>This section will provide various examples of using these methods safely and unsafely. You can test these examples in the <a href="https://playground.prisma.io/examples" rel="noreferrer noopener" target="_blank">Prisma Playground</a>.</p>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="in-queryraw-and-executeraw"><a data-card="" href="#in-queryraw-and-executeraw" class="peer">In <code>$queryRaw</code> and <code>$executeRaw</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="simple-safe-use-of-queryraw-and-executeraw"><a data-card="" href="#simple-safe-use-of-queryraw-and-executeraw" class="peer">Simple, safe use of <code>$queryRaw</code> and <code>$executeRaw</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p>These methods can mitigate the risk of SQL injection by escaping all variables when you use tagged templates and sends all queries as prepared statements.</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`...`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Tagged template</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$executeRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`...`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Tagged template</span></span></code></pre></div></figure>
<p>The following example is safe ✅ from SQL Injection:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `&#x27;Sarah&#x27; UNION SELECT id, title FROM &quot;Post&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT id, name FROM &quot;User&quot; WHERE name = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">inputString</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="unsafe-use-of-queryraw-and-executeraw"><a data-card="" href="#unsafe-use-of-queryraw-and-executeraw" class="peer">Unsafe use of <code>$queryRaw</code> and <code>$executeRaw</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p>However, it is also possible to use these methods in unsafe ways.</p>
<p>One way is by artificially generating a tagged template that unsafely concatenates user input.</p>
<p>The following example is vulnerable ❌ to SQL Injection:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Unsafely generate query text</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `&#x27;Sarah&#x27; UNION SELECT id, title FROM &quot;Post&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// SQL Injection</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `SELECT id, name FROM &quot;User&quot; WHERE name = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">inputString</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Version for Typescript</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> stringsArray</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> any</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[query]];</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Version for Javascript</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> stringsArray</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">...</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">[query]];</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Use the `raw` property to impersonate a tagged template</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">stringsArray.raw </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [query];</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Use queryRaw</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(stringsArray);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<p>Another way to make these methods vulnerable is misuse of the <code>Prisma.raw</code> function.</p>
<p>The following examples are all vulnerable ❌ to SQL Injection:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `&#x27;Sarah&#x27; UNION SELECT id, title FROM &quot;Post&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT id, name FROM &quot;User&quot; WHERE name = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Prisma</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">raw</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">(</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  inputString</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">)</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `&#x27;Sarah&#x27; UNION SELECT id, title FROM &quot;Post&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  Prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">raw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT id, name FROM &quot;User&quot; WHERE name = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">inputString</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">),</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `&#x27;Sarah&#x27; UNION SELECT id, title FROM &quot;Post&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">raw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT id, name FROM &quot;User&quot; WHERE name = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">inputString</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(query);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="safely-using-queryraw-and-executeraw-in-more-complex-scenarios"><a data-card="" href="#safely-using-queryraw-and-executeraw-in-more-complex-scenarios" class="peer">Safely using <code>$queryRaw</code> and <code>$executeRaw</code> in more complex scenarios</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<h5 class="flex scroll-m-28 flex-row items-center gap-2" id="building-raw-queries-separate-to-query-execution"><a data-card="" href="#building-raw-queries-separate-to-query-execution" class="peer">Building raw queries separate to query execution</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h5>
<p>If you want to build your raw queries elsewhere or separate to your parameters you will need to use one of the following methods.</p>
<p>In this example, the <code>sql</code> helper method is used to build the query text by safely including the variable. It is safe ✅ from SQL Injection:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// inputString can be untrusted input</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `&#x27;Sarah&#x27; UNION SELECT id, title FROM &quot;Post&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Safe if the text query below is completely trusted content</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sql</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT id, name FROM &quot;User&quot; WHERE name = ${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">inputString</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(query);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<p>In this example which is safe ✅ from SQL Injection, the <code>sql</code> helper method is used to build the query text including a parameter marker for the input value. Each variable is represented by a marker symbol (<code>?</code> for MySQL, <code>$1</code>, <code>$2</code>, and so on for PostgreSQL). Note that the examples just show PostgreSQL queries.</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Version for Typescript</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> any</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Version for Javascript</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Safe if the text query below is completely trusted content</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">query </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sql</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`SELECT id, name FROM &quot;User&quot; WHERE name = $1`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// inputString can be untrusted input</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `&#x27;Sarah&#x27; UNION SELECT id, title FROM &quot;Post&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">query.values </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [inputString];</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(query);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<blockquote>
<p><strong>Note</strong>: PostgreSQL variables are represented by <code>$1</code>, etc</p>
</blockquote>
<h5 class="flex scroll-m-28 flex-row items-center gap-2" id="building-raw-queries-elsewhere-or-in-stages"><a data-card="" href="#building-raw-queries-elsewhere-or-in-stages" class="peer">Building raw queries elsewhere or in stages</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h5>
<p>If you want to build your raw queries somewhere other than where the query is executed, the ideal way to do this is to create an <code>Sql</code> object from the segments of your query and pass it the parameter value.</p>
<p>In the following example we have two variables to parameterize. The example is safe ✅ from SQL Injection as long as the query strings being passed to <code>Prisma.sql</code> only contain trusted content:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Example is safe if the text query below is completely trusted content</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `SELECT id, name FROM &quot;User&quot; WHERE name = `</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// The first parameter would be inserted after this string</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> ` OR name = `</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// The second parameter would be inserted after this string</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;Fred&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `&#x27;Sarah&#x27; UNION SELECT id, title FROM &quot;Post&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sql</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">([query1, query2, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">], inputString1, inputString2);</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(query);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<blockquote>
<p>Note: Notice that the string array being passed as the first parameter <code>Prisma.sql</code> needs to have an empty string at the end as the <code>sql</code> function expects one more query segment than the number of parameters.</p>
</blockquote>
<p>If you want to build your raw queries into one large string, this is still possible but requires some care as it is uses the potentially dangerous <code>Prisma.raw</code> method. You also need to build your query using the correct parameter markers for your database as Prisma won&#x27;t be able to provide markers for the relevant database as it usually is.</p>
<p>The following example is safe ✅ from SQL Injection as long as the query strings being passed to <code>Prisma.raw</code> only contain trusted content:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Version for Typescript</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> any</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Version for Javascript</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Example is safe if the text query below is completely trusted content</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query1</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `SELECT id, name FROM &quot;User&quot; `</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query2</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `WHERE name = $1 `</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">query </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> Prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">raw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">`${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">query1</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">query2</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// inputString can be untrusted input</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> `&#x27;Sarah&#x27; UNION SELECT id, title FROM &quot;Post&quot;`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">query.values </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> [inputString];</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(query);</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="in-queryrawunsafe-and-executerawunsafe"><a data-card="" href="#in-queryrawunsafe-and-executerawunsafe" class="peer">In <code>$queryRawUnsafe</code> and <code>$executeRawUnsafe</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="using-queryrawunsafe-and-executerawunsafe-unsafely"><a data-card="" href="#using-queryrawunsafe-and-executerawunsafe-unsafely" class="peer">Using <code>$queryRawUnsafe</code> and <code>$executeRawUnsafe</code> unsafely</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p>If you cannot use tagged templates, you can instead use <a href="/docs/orm/prisma-client/using-raw-sql/raw-queries#queryrawunsafe"><code>$queryRawUnsafe</code></a> or <a href="/docs/orm/prisma-client/using-raw-sql/raw-queries#executerawunsafe"><code>$executeRawUnsafe</code></a>. However, <strong>be aware that these functions significantly increase the risk of SQL injection vulnerabilities in your code</strong>.</p>
<p>The following example concatenates <code>query</code> and <code>inputString</code>. Prisma Client ❌ <strong>cannot</strong> escape <code>inputString</code> in this example, which makes it vulnerable to SQL injection:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> inputString</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;&quot;Sarah&quot; UNION SELECT id, title, content FROM Post&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">; </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// SQL Injection</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> query</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;SELECT id, name, email FROM User WHERE name = &quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> inputString;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRawUnsafe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(query);</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(result);</span></span></code></pre></div></figure>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="parameterized-queries"><a data-card="" href="#parameterized-queries" class="peer">Parameterized queries</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p>As an alternative to tagged templates, <code>$queryRawUnsafe</code> supports standard parameterized queries where each variable is represented by a symbol (<code>?</code> for MySQL, <code>$1</code>, <code>$2</code>, and so on for PostgreSQL). Note that the examples just show PostgreSQL queries.</p>
<p>The following example is safe ✅ from SQL Injection:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> userName</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;Sarah&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> email</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;sarah@prisma.io&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRawUnsafe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">  &quot;SELECT * FROM User WHERE (name = $1 OR email = $2)&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  userName,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  email,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre></div></figure>
<blockquote>
<p><strong>Note</strong>: PostgreSQL variables are represented by <code>$1</code> and <code>$2</code></p>
</blockquote>
<p>As with tagged templates, Prisma Client escapes all variables when they are provided in this way.</p>
<blockquote>
<p><strong>Note</strong>: You cannot pass a table or column name as a variable into a parameterized query. For example, you cannot <code>SELECT ?</code> and pass in <code>*</code> or <code>id, name</code> based on some condition.</p>
</blockquote>
<h5 class="flex scroll-m-28 flex-row items-center gap-2" id="parameterized-postgresql-ilike-query"><a data-card="" href="#parameterized-postgresql-ilike-query" class="peer">Parameterized PostgreSQL <code>ILIKE</code> query</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h5>
<p>When you use <code>ILIKE</code>, the <code>%</code> wildcard character(s) should be included in the variable itself, not the query (<code>string</code>). This example is safe ✅ from SQL Injection.</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> userName</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;Sarah&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> emailFragment</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;prisma.io&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$queryRawUnsafe</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">  &#x27;SELECT * FROM &quot;User&quot; WHERE (name = $1 OR email ILIKE $2)&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  userName,</span></span>
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">  `%${</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">emailFragment</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}`</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span></code></pre></div></figure>
<blockquote>
<p><strong>Note</strong>: Using <code>%$2</code> as an argument would not work</p>
</blockquote>
<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="raw-queries-with-mongodb"><a data-card="" href="#raw-queries-with-mongodb" class="peer">Raw queries with MongoDB</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
<p>For MongoDB, Prisma Client exposes three methods that allow you to send raw queries. You can use:</p>
<ul>
<li><code>$runCommandRaw</code> to run a command against the database</li>
<li><code>&lt;model&gt;.findRaw</code> to find zero or more documents that match the filter.</li>
<li><code>&lt;model&gt;.aggregateRaw</code> to perform aggregation operations on a collection.</li>
</ul>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="runcommandraw"><a data-card="" href="#runcommandraw" class="peer"><code>$runCommandRaw()</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p><code>$runCommandRaw()</code> runs a raw MongoDB command against the database. As input, it accepts all <a href="https://www.mongodb.com/docs/manual/reference/command/" rel="noreferrer noopener" target="_blank">MongoDB database commands</a>, with the following exceptions:</p>
<ul>
<li><code>find</code> (use <a href="#findraw"><code>findRaw()</code></a> instead)</li>
<li><code>aggregate</code> (use <a href="#aggregateraw"><code>aggregateRaw()</code></a> instead)</li>
</ul>
<p>When you use <code>$runCommandRaw()</code> to run a MongoDB database command, note the following:</p>
<ul>
<li>The object that you pass when you invoke <code>$runCommandRaw()</code> must follow the syntax of the MongoDB database command.</li>
<li>You must connect to the database with an appropriate role for the MongoDB database command.</li>
</ul>
<p>In the following example, a query inserts two records with the same <code>_id</code>. This bypasses normal document validation.</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">prisma.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$runCommandRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  insert: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Pets&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  bypassDocumentValidation: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  documents: [</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      _id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Felinecitas&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Cat&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      breed: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Russian Blue&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      age: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">12</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    {</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      _id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      name: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Nao Nao&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      type: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Dog&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      breed: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Chow Chow&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">      age: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">2</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  ],</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">});</span></span></code></pre></div></figure>
<div role="alert" class="relative w-full rounded-md border p-4 gap-3 type-text-sm [&amp;&gt;svg]:left-4 [&amp;&gt;svg]:top-4 [&amp;&gt;svg]:w-5 [&amp;&gt;svg]:h-5 alert-alert flex items-start [&amp;&gt;i]:mt-0.5 bg-background-warning border-none text-foreground-warning [&amp;&gt;svg]:text-foreground-warning"><i class="fa-duotone fa-solid fa-circle-exclamation"></i><div class="[&amp;&gt;*]:first:mt-0 [&amp;&gt;*]:last:mb-0 [&amp; strong]:text-inherit"><p>Do not use <code>$runCommandRaw()</code> for queries which contain the <code>&quot;find&quot;</code> or <code>&quot;aggregate&quot;</code> commands, because you might be unable to fetch all data. This is because MongoDB returns a <a href="https://www.mongodb.com/docs/manual/tutorial/iterate-a-cursor/" rel="noreferrer noopener" target="_blank">cursor</a> that is attached to your MongoDB session, and you might not hit the same MongoDB session every time. For these queries, you should use the specialised <a href="#findraw"><code>findRaw()</code></a> and <a href="#aggregateraw"><code>aggregateRaw()</code></a> methods instead.</p></div></div>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="return-type-2"><a data-card="" href="#return-type-2" class="peer">Return type</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p><code>$runCommandRaw()</code> returns a <code>JSON</code> object whose shape depends on the inputs.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="signature-4"><a data-card="" href="#signature-4" class="peer">Signature</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">$runCommandRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(command: InputJsonObject): PrismaPromise</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&lt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">JsonObject</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="findraw"><a data-card="" href="#findraw" class="peer"><code>findRaw()</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p><code>&lt;model&gt;.findRaw()</code> returns actual database records. It will find zero or more documents that match the filter on the <code>User</code> collection:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.user.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">findRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  filter: { age: { $gt: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">25</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  options: { projection: { _id: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">});</span></span></code></pre></div></figure>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="return-type-3"><a data-card="" href="#return-type-3" class="peer">Return type</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p><code>&lt;model&gt;.findRaw()</code> returns a <code>JSON</code> object whose shape depends on the inputs.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="signature-5"><a data-card="" href="#signature-5" class="peer">Signature</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">model</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">findRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(args</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">?:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {filter?: InputJsonObject, options?: InputJsonObject}): PrismaPromise</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&lt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">JsonObject</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<ul>
<li><code>filter</code>: The query predicate filter. If unspecified, then all documents in the collection will match the <a href="https://www.mongodb.com/docs/manual/reference/mql/query-predicates/" rel="noreferrer noopener" target="_blank">predicate</a>.</li>
<li><code>options</code>: Additional options to pass to the <a href="https://www.mongodb.com/docs/manual/reference/command/find/#command-fields" rel="noreferrer noopener" target="_blank"><code>find</code> command</a>.</li>
</ul>
<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="aggregateraw"><a data-card="" href="#aggregateraw" class="peer"><code>aggregateRaw()</code></a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
<p><code>&lt;model&gt;.aggregateRaw()</code> returns aggregated database records. It will perform aggregation operations on the <code>User</code> collection:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.user.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">aggregateRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  pipeline: [</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    { $match: { status: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;registered&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    { $group: { _id: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;$country&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, total: { $sum: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">1</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> } } },</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  ],</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">});</span></span></code></pre></div></figure>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="return-type-4"><a data-card="" href="#return-type-4" class="peer">Return type</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p><code>&lt;model&gt;.aggregateRaw()</code> returns a <code>JSON</code> object whose shape depends on the inputs.</p>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="signature-6"><a data-card="" href="#signature-6" class="peer">Signature</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&lt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">model</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">&gt;.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">aggregateRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(args</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">?:</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {pipeline?: InputJsonObject[], options?: InputJsonObject}): PrismaPromise</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&lt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">JsonObject</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span></code></pre></div></figure>
<ul>
<li><code>pipeline</code>: An array of aggregation stages to process and transform the document stream via the <a href="https://www.mongodb.com/docs/atlas/data-federation/supported-unsupported/supported-aggregation/" rel="noreferrer noopener" target="_blank">aggregation pipeline</a>.</li>
<li><code>options</code>: Additional options to pass to the <a href="https://www.mongodb.com/docs/manual/reference/command/aggregate/#command-fields" rel="noreferrer noopener" target="_blank"><code>aggregate</code> command</a>.</li>
</ul>
<h4 class="flex scroll-m-28 flex-row items-center gap-2" id="caveats"><a data-card="" href="#caveats" class="peer">Caveats</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h4>
<p>When working with custom objects like <code>ObjectId</code> or <code>Date,</code> you will have to pass them according to the <a href="https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/#type-representations" rel="noreferrer noopener" target="_blank">MongoDB extended JSON Spec</a>.
Example:</p>
<figure dir="ltr" class="my-4 bg-fd-card rounded-square shiki relative border border-stroke-neutral not-prose overflow-hidden type-code-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring bg-background-default" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> result</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> prisma.user.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">aggregateRaw</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  pipeline: [</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    { $match: { _id: { $oid: id } } },</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    //                     ^ notice the $oid convention here</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  ],</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">});</span></span></code></pre></div></figure></div><div class="flex flex-row flex-wrap items-center justify-between gap-4 border-t pt-6 text-sm"><a target="_blank" rel="noreferrer noopener" href="https://github.com/prisma/docs/edit/main/apps/docs/content/docs/orm/prisma-client/using-raw-sql/raw-queries.mdx" class="inline-flex items-center justify-center rounded-md p-2 font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring border bg-fd-secondary text-fd-secondary-foreground hover:bg-fd-accent hover:text-fd-accent-foreground px-2 py-1.5 text-xs gap-1.5 not-prose"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-square-pen size-3.5" aria-hidden="true"><path d="M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path><path d="M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z"></path></svg>Edit on GitHub</a></div><div class="@container grid gap-4 grid-cols-2"><a class="flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors hover:bg-fd-accent/80 hover:text-fd-accent-foreground @max-lg:col-span-full" href="/docs/orm/prisma-client/using-raw-sql"><div class="inline-flex items-center gap-1.5 font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left -mx-1 size-4 shrink-0 rtl:rotate-180" aria-hidden="true"><path d="m15 18-6-6 6-6"></path></svg><p>Write your own SQL</p></div><p class="text-fd-muted-foreground truncate">Learn how to use raw SQL queries in Prisma Client</p></a><a class="flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors hover:bg-fd-accent/80 hover:text-fd-accent-foreground @max-lg:col-span-full text-end" href="/docs/orm/prisma-client/using-raw-sql/typedsql"><div class="inline-flex items-center gap-1.5 font-medium flex-row-reverse"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right -mx-1 size-4 shrink-0 rtl:rotate-180" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg><p>TypedSQL</p></div><p class="text-fd-muted-foreground truncate">Learn how to use TypedSQL to write fully type-safe SQL queries that are compatible with any SQL console and Prisma Client</p></a></div></article><div id="nd-toc" class="sticky top-(--fd-docs-row-3) [grid-area:toc] h-[calc(var(--fd-docs-height)-var(--fd-docs-row-3))] flex flex-col w-(--fd-toc-width) pt-12 pe-4 pb-2 xl:layout:[--fd-toc-width:268px] max-xl:hidden"><h3 id="toc-title" class="inline-flex items-center gap-1.5 text-sm text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-text-align-start size-4" aria-hidden="true"><path d="M21 5H3"></path><path d="M15 12H3"></path><path d="M17 19H3"></path></svg>On this page</h3><div class="relative min-h-0 text-sm ms-px overflow-auto [scrollbar-width:none] mask-[linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent)] py-3"><div data-hidden="true" class="absolute top-(--fd-top) h-(--fd-height) w-0.5 rounded-e-sm bg-fd-primary transition-[top,height] ease-linear"></div><div class="flex flex-col border-s border-fd-foreground/10"><a data-active="false" href="#raw-queries-with-relational-databases" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-3">Raw queries with relational databases</a><a data-active="false" href="#queryraw" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6"><code>$queryRaw</code></a><a data-active="false" href="#considerations" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Considerations</a><a data-active="false" href="#return-type" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Return type</a><a data-active="false" href="#signature" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Signature</a><a data-active="false" href="#typing-queryraw-results" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Typing <code>$queryRaw</code> results</a><a data-active="false" href="#type-caveats-when-using-raw-sql" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Type caveats when using raw SQL</a><a data-active="false" href="#dynamic-table-names-in-postgresql" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Dynamic table names in PostgreSQL</a><a data-active="false" href="#queryrawunsafe" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6"><code>$queryRawUnsafe()</code></a><a data-active="false" href="#signature-1" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Signature</a><a data-active="false" href="#executeraw" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6"><code>$executeRaw</code></a><a data-active="false" href="#considerations-1" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Considerations</a><a data-active="false" href="#return-type-1" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Return type</a><a data-active="false" href="#signature-2" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Signature</a><a data-active="false" href="#executerawunsafe" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6"><code>$executeRawUnsafe()</code></a><a data-active="false" href="#signature-3" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Signature</a><a data-active="false" href="#raw-query-type-mapping" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6">Raw query type mapping</a><a data-active="false" href="#raw-query-typecasting-behavior" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6">Raw query typecasting behavior</a><a data-active="false" href="#transactions" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6">Transactions</a><a data-active="false" href="#using-variables" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6">Using variables</a><a data-active="false" href="#tagged-template-helpers" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Tagged template helpers</a><a data-active="false" href="#alter-limitation-postgresql" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8"><code>ALTER</code> limitation (PostgreSQL)</a><a data-active="false" href="#unsupported-types" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6">Unsupported types</a><a data-active="false" href="#sql-injection-prevention" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-3">SQL injection prevention</a><a data-active="false" href="#in-queryraw-and-executeraw" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6">In <code>$queryRaw</code> and <code>$executeRaw</code></a><a data-active="false" href="#simple-safe-use-of-queryraw-and-executeraw" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Simple, safe use of <code>$queryRaw</code> and <code>$executeRaw</code></a><a data-active="false" href="#unsafe-use-of-queryraw-and-executeraw" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Unsafe use of <code>$queryRaw</code> and <code>$executeRaw</code></a><a data-active="false" href="#safely-using-queryraw-and-executeraw-in-more-complex-scenarios" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Safely using <code>$queryRaw</code> and <code>$executeRaw</code> in more complex scenarios</a><a data-active="false" href="#building-raw-queries-separate-to-query-execution" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Building raw queries separate to query execution</a><a data-active="false" href="#building-raw-queries-elsewhere-or-in-stages" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Building raw queries elsewhere or in stages</a><a data-active="false" href="#in-queryrawunsafe-and-executerawunsafe" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6">In <code>$queryRawUnsafe</code> and <code>$executeRawUnsafe</code></a><a data-active="false" href="#using-queryrawunsafe-and-executerawunsafe-unsafely" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Using <code>$queryRawUnsafe</code> and <code>$executeRawUnsafe</code> unsafely</a><a data-active="false" href="#parameterized-queries" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Parameterized queries</a><a data-active="false" href="#parameterized-postgresql-ilike-query" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Parameterized PostgreSQL <code>ILIKE</code> query</a><a data-active="false" href="#raw-queries-with-mongodb" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-3">Raw queries with MongoDB</a><a data-active="false" href="#runcommandraw" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6"><code>$runCommandRaw()</code></a><a data-active="false" href="#return-type-2" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Return type</a><a data-active="false" href="#signature-4" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Signature</a><a data-active="false" href="#findraw" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6"><code>findRaw()</code></a><a data-active="false" href="#return-type-3" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Return type</a><a data-active="false" href="#signature-5" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Signature</a><a data-active="false" href="#aggregateraw" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-6"><code>aggregateRaw()</code></a><a data-active="false" href="#return-type-4" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Return type</a><a data-active="false" href="#signature-6" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Signature</a><a data-active="false" href="#caveats" class="prose py-1.5 text-sm text-fd-muted-foreground transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary ps-8">Caveats</a></div></div></div><!--$--><!--/$--></div><div style="display:none"></div><script src="/docs-static/_next/static/chunks/e61d34356ccb264a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[27532,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"\"]\n3:I[834441,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"Provider\"]\n4:I[432378,[\"/docs-static/_next/static/chunks/d6c5d1f5b52e58a1.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"default\"]\n5:I[361626,[\"/docs-static/_next/static/chunks/d6c5d1f5b52e58a1.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"6:I[478291,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"TreeContextProvider\"]\n"])</script><script>self.__next_f.push([1,"4c:I[26845,[\"/docs-static/_next/static/chunks/88b80640a1bed930.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"default\"]\n:HL[\"/docs-static/_next/static/chunks/f45bfa5e1e36e9f2.css?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"style\"]\n:HL[\"/docs-static/_next/static/chunks/a30a283dd3bab507.css?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"style\"]\n:HL[\"/docs-static/_next/static/media/0595f7052377a1a2-s.p.0de08f1e.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs-static/_next/static/media/6c98c9fb873995d2-s.p.4a6499bc.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs-static/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs-static/_next/static/media/a083361d37caf3d1-s.p.5c0d0b0d.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs-static/_next/static/media/c6e2684784a55443-s.p.ea91da97.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs-static/_next/static/chunks/4a484dd8b34fb596.css?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"sw5SJKmskKXcYgaZlqSWr\",\"c\":[\"\",\"orm\",\"prisma-client\",\"using-raw-sql\",\"raw-queries\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(docs)\",{\"children\":[\"(default)\",{\"children\":[[\"slug\",\"orm/prisma-client/using-raw-sql/raw-queries\",\"oc\"],{\"children\":[\"__PAGE__\",{}]}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/docs-static/_next/static/chunks/f45bfa5e1e36e9f2.css?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/docs-static/_next/static/chunks/a30a283dd3bab507.css?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-10\",{\"src\":\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-11\",{\"src\":\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-12\",{\"src\":\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"inter_5901b7c6-module__ec5Qua__variable barlow_fd4d59a2-module__LzUlFq__variable\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"$L2\",null,{\"src\":\"https://kit.fontawesome.com/c1448b716e.js\",\"crossOrigin\":\"anonymous\",\"data-auto-add-css\":\"false\"}]}],[\"$\",\"body\",null,{\"className\":\"flex flex-col min-h-screen\",\"children\":[[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L6\",null,{\"tree\":{\"$id\":\"root\",\"name\":\"Documentation\",\"children\":[{\"type\":\"folder\",\"name\":\"Getting Started\",\"root\":true,\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"_0\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Getting Started\"},{\"$id\":\"(index)/index.mdx\",\"type\":\"page\",\"name\":\"Introduction to Prisma\",\"description\":\"Build data-driven applications with ease using Prisma ORM and Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/\",\"$ref\":{\"file\":\"(index)/index.mdx\"}},{\"$id\":\"_1\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Prisma ORM\"},{\"type\":\"folder\",\"name\":\"Quickstart\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"(index)/prisma-orm/quickstart/prisma-postgres.mdx\",\"type\":\"page\",\"name\":\"Prisma Postgres\",\"description\":\"Create a new TypeScript project from scratch by connecting Prisma ORM to Prisma Postgres and generating a Prisma Client for database access\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/quickstart/prisma-postgres\",\"$ref\":{\"file\":\"(index)/prisma-orm/quickstart/prisma-postgres.mdx\"}},{\"$id\":\"(index)/prisma-orm/quickstart/sqlite.mdx\",\"type\":\"page\",\"name\":\"SQLite\",\"description\":\"Create a new TypeScript project from scratch by connecting Prisma ORM to SQLite and generating a Prisma Client for database access\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/quickstart/sqlite\",\"$ref\":{\"file\":\"(index)/prisma-orm/quickstart/sqlite.mdx\"}},{\"$id\":\"(index)/prisma-orm/quickstart/postgresql.mdx\",\"type\":\"page\",\"name\":\"PostgreSQL\",\"description\":\"Create a new TypeScript project from scratch by connecting Prisma ORM to PostgreSQL and generating a Prisma Client for database access\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/quickstart/postgresql\",\"$ref\":{\"file\":\"(index)/prisma-orm/quickstart/postgresql.mdx\"}},{\"$id\":\"(index)/prisma-orm/quickstart/mysql.mdx\",\"type\":\"page\",\"name\":\"MySQL\",\"description\":\"Create a new TypeScript project from scratch by connecting Prisma ORM to MySQL and generating a Prisma Client for database access\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/quickstart/mysql\",\"$ref\":{\"file\":\"(index)/prisma-orm/quickstart/mysql.mdx\"}},{\"$id\":\"(index)/prisma-orm/quickstart/sql-server.mdx\",\"type\":\"page\",\"name\":\"SQL Server\",\"description\":\"Create a new TypeScript project from scratch by connecting Prisma ORM to SQL Server and generating a Prisma Client for database access\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/quickstart/sql-server\",\"$ref\":{\"file\":\"(index)/prisma-orm/quickstart/sql-server.mdx\"}},{\"$id\":\"(index)/prisma-orm/quickstart/planetscale.mdx\",\"type\":\"page\",\"name\":\"PlanetScale\",\"description\":\"Create a new TypeScript project from scratch by connecting Prisma ORM to PlanetScale and generating a Prisma Client for database access\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/quickstart/planetscale\",\"$ref\":{\"file\":\"(index)/prisma-orm/quickstart/planetscale.mdx\"}},{\"$id\":\"(index)/prisma-orm/quickstart/cockroachdb.mdx\",\"type\":\"page\",\"name\":\"CockroachDB\",\"description\":\"Create a new TypeScript project from scratch by connecting Prisma ORM to CockroachDB and generating a Prisma Client for database access\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/quickstart/cockroachdb\",\"$ref\":{\"file\":\"(index)/prisma-orm/quickstart/cockroachdb.mdx\"}},{\"$id\":\"(index)/prisma-orm/quickstart/mongodb.mdx\",\"type\":\"page\",\"name\":\"MongoDB\",\"description\":\"Create a new TypeScript project from scratch by connecting Prisma ORM to MongoDB and generating a Prisma Client for database access\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/quickstart/mongodb\",\"$ref\":{\"file\":\"(index)/prisma-orm/quickstart/mongodb.mdx\"}}],\"$id\":\"(index)/prisma-orm/quickstart\",\"$ref\":{\"metaFile\":\"(index)/prisma-orm/quickstart/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Add to Existing Project\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx\",\"type\":\"page\",\"name\":\"Prisma Postgres\",\"description\":\"Add Prisma ORM to an existing TypeScript project with Prisma Postgres and learn database introspection, baselining, and querying\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/add-to-existing-project/prisma-postgres\",\"$ref\":{\"file\":\"(index)/prisma-orm/add-to-existing-project/prisma-postgres.mdx\"}},{\"$id\":\"(index)/prisma-orm/add-to-existing-project/sqlite.mdx\",\"type\":\"page\",\"name\":\"SQLite\",\"description\":\"Add Prisma ORM to an existing TypeScript project with SQLite and learn database introspection, baselining, and querying\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/add-to-existing-project/sqlite\",\"$ref\":{\"file\":\"(index)/prisma-orm/add-to-existing-project/sqlite.mdx\"}},{\"$id\":\"(index)/prisma-orm/add-to-existing-project/postgresql.mdx\",\"type\":\"page\",\"name\":\"PostgreSQL\",\"description\":\"Add Prisma ORM to an existing TypeScript project with PostgreSQL and learn database introspection, baselining, and querying\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/add-to-existing-project/postgresql\",\"$ref\":{\"file\":\"(index)/prisma-orm/add-to-existing-project/postgresql.mdx\"}},{\"$id\":\"(index)/prisma-orm/add-to-existing-project/mysql.mdx\",\"type\":\"page\",\"name\":\"MySQL\",\"description\":\"Add Prisma ORM to an existing TypeScript project with MySQL and learn database introspection, baselining, and querying\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/add-to-existing-project/mysql\",\"$ref\":{\"file\":\"(index)/prisma-orm/add-to-existing-project/mysql.mdx\"}},{\"$id\":\"(index)/prisma-orm/add-to-existing-project/sql-server.mdx\",\"type\":\"page\",\"name\":\"SQL Server\",\"description\":\"Add Prisma ORM to an existing TypeScript project with SQL Server and learn database introspection, baselining, and querying\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/add-to-existing-project/sql-server\",\"$ref\":{\"file\":\"(index)/prisma-orm/add-to-existing-project/sql-server.mdx\"}},{\"$id\":\"(index)/prisma-orm/add-to-existing-project/planetscale.mdx\",\"type\":\"page\",\"name\":\"PlanetScale\",\"description\":\"Add Prisma ORM to an existing TypeScript project with PlanetScale and learn database introspection and querying\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/add-to-existing-project/planetscale\",\"$ref\":{\"file\":\"(index)/prisma-orm/add-to-existing-project/planetscale.mdx\"}},{\"$id\":\"(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx\",\"type\":\"page\",\"name\":\"CockroachDB\",\"description\":\"Add Prisma ORM to an existing TypeScript project with CockroachDB and learn database introspection, baselining, and querying\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/add-to-existing-project/cockroachdb\",\"$ref\":{\"file\":\"(index)/prisma-orm/add-to-existing-project/cockroachdb.mdx\"}},{\"$id\":\"(index)/prisma-orm/add-to-existing-project/mongodb.mdx\",\"type\":\"page\",\"name\":\"MongoDB\",\"description\":\"Add Prisma ORM to an existing TypeScript project with MongoDB and learn database introspection and querying\",\"icon\":\"$undefined\",\"url\":\"/prisma-orm/add-to-existing-project/mongodb\",\"$ref\":{\"file\":\"(index)/prisma-orm/add-to-existing-project/mongodb.mdx\"}}],\"$id\":\"(index)/prisma-orm/add-to-existing-project\",\"$ref\":{\"metaFile\":\"(index)/prisma-orm/add-to-existing-project/meta.json\"},\"icon\":\"$undefined\"},{\"$id\":\"_2\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Prisma Postgres\"},{\"type\":\"folder\",\"name\":\"Quickstart\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"(index)/prisma-postgres/quickstart/prisma-orm.mdx\",\"type\":\"page\",\"name\":\"Prisma ORM\",\"description\":\"Create a new TypeScript project from scratch by connecting Prisma ORM to Prisma Postgres and generating a Prisma Client for database access\",\"icon\":\"$undefined\",\"url\":\"/prisma-postgres/quickstart/prisma-orm\",\"$ref\":{\"file\":\"(index)/prisma-postgres/quickstart/prisma-orm.mdx\"}},{\"$id\":\"(index)/prisma-postgres/quickstart/kysely.mdx\",\"type\":\"page\",\"name\":\"Kysely\",\"description\":\"Get started with Kysely and Prisma Postgres by creating a type-safe SQL query builder for your database\",\"icon\":\"$undefined\",\"url\":\"/prisma-postgres/quickstart/kysely\",\"$ref\":{\"file\":\"(index)/prisma-postgres/quickstart/kysely.mdx\"}},{\"$id\":\"(index)/prisma-postgres/quickstart/drizzle-orm.mdx\",\"type\":\"page\",\"name\":\"Drizzle ORM\",\"description\":\"Get started with Drizzle ORM and Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/prisma-postgres/quickstart/drizzle-orm\",\"$ref\":{\"file\":\"(index)/prisma-postgres/quickstart/drizzle-orm.mdx\"}},{\"$id\":\"(index)/prisma-postgres/quickstart/typeorm.mdx\",\"type\":\"page\",\"name\":\"TypeORM\",\"description\":\"Get started with TypeORM and Prisma Postgres by connecting your TypeScript ORM to a managed PostgreSQL database\",\"icon\":\"$undefined\",\"url\":\"/prisma-postgres/quickstart/typeorm\",\"$ref\":{\"file\":\"(index)/prisma-postgres/quickstart/typeorm.mdx\"}}],\"$id\":\"(index)/prisma-postgres/quickstart\",\"$ref\":{\"metaFile\":\"(index)/prisma-postgres/quickstart/meta.json\"},\"icon\":\"$undefined\"},{\"$id\":\"(index)/prisma-postgres/import-from-existing-database-postgresql.mdx\",\"type\":\"page\",\"name\":\"Import from PostgreSQL\",\"description\":\"Learn how to import data from an existing PostgreSQL database into Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/prisma-postgres/import-from-existing-database-postgresql\",\"$ref\":{\"file\":\"(index)/prisma-postgres/import-from-existing-database-postgresql.mdx\"}},{\"$id\":\"(index)/prisma-postgres/import-from-existing-database-mysql.mdx\",\"type\":\"page\",\"name\":\"Import from MySQL\",\"description\":\"Learn how to import data from an existing MySQL database into Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/prisma-postgres/import-from-existing-database-mysql\",\"$ref\":{\"file\":\"(index)/prisma-postgres/import-from-existing-database-mysql.mdx\"}},{\"$id\":\"(index)/prisma-postgres/from-the-cli.mdx\",\"type\":\"page\",\"name\":\"From the CLI\",\"description\":\"Start building a Prisma application with a Prisma Postgres database from the CLI\",\"icon\":\"$undefined\",\"url\":\"/prisma-postgres/from-the-cli\",\"$ref\":{\"file\":\"(index)/prisma-postgres/from-the-cli.mdx\"}}],\"$id\":\"(index)\",\"$ref\":{\"metaFile\":\"(index)/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"ORM\",\"root\":true,\"defaultOpen\":true,\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"_3\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Introduction\"},{\"$id\":\"orm/index.mdx\",\"type\":\"page\",\"name\":\"Prisma ORM\",\"description\":\"Prisma ORM is a next-generation Node.js and TypeScript ORM that provides type-safe database access, migrations, and a visual data editor.\",\"icon\":\"$undefined\",\"url\":\"/orm\",\"$ref\":{\"file\":\"orm/index.mdx\"}},{\"$id\":\"_4\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Core Concepts\"},{\"$id\":\"orm/core-concepts/data-modeling.mdx\",\"type\":\"page\",\"name\":\"Data modeling\",\"description\":\"Learn how data modeling with Prisma differs from data modeling with SQL or ORMs. Prisma uses a declarative data modeling language to describe a database schema\",\"icon\":\"$undefined\",\"url\":\"/orm/core-concepts/data-modeling\",\"$ref\":{\"file\":\"orm/core-concepts/data-modeling.mdx\"}},{\"type\":\"folder\",\"name\":\"Supported databases\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/core-concepts/supported-databases/index.mdx\",\"type\":\"page\",\"name\":\"Overview\",\"description\":\"Prisma ORM supports PostgreSQL, MySQL, SQLite, MongoDB, SQL Server, CockroachDB, and serverless databases\",\"icon\":\"$undefined\",\"url\":\"/orm/core-concepts/supported-databases\",\"$ref\":{\"file\":\"orm/core-concepts/supported-databases/index.mdx\"}},{\"$id\":\"orm/core-concepts/supported-databases/postgresql.mdx\",\"type\":\"page\",\"name\":\"PostgreSQL\",\"description\":\"Use Prisma ORM with PostgreSQL databases including self-hosted, serverless (Neon, Supabase), and CockroachDB\",\"icon\":\"$undefined\",\"url\":\"/orm/core-concepts/supported-databases/postgresql\",\"$ref\":{\"file\":\"orm/core-concepts/supported-databases/postgresql.mdx\"}},{\"$id\":\"orm/core-concepts/supported-databases/mysql.mdx\",\"type\":\"page\",\"name\":\"MySQL\",\"description\":\"Use Prisma ORM with MySQL databases including self-hosted MySQL/MariaDB and serverless PlanetScale\",\"icon\":\"$undefined\",\"url\":\"/orm/core-concepts/supported-databases/mysql\",\"$ref\":{\"file\":\"orm/core-concepts/supported-databases/mysql.mdx\"}},{\"$id\":\"orm/core-concepts/supported-databases/sqlite.mdx\",\"type\":\"page\",\"name\":\"SQLite\",\"description\":\"Use Prisma ORM with SQLite databases including local SQLite, Turso (libSQL), and Cloudflare D1\",\"icon\":\"$undefined\",\"url\":\"/orm/core-concepts/supported-databases/sqlite\",\"$ref\":{\"file\":\"orm/core-concepts/supported-databases/sqlite.mdx\"}},{\"$id\":\"orm/core-concepts/supported-databases/sql-server.mdx\",\"type\":\"page\",\"name\":\"SQL Server\",\"description\":\"Use Prisma ORM with Microsoft SQL Server databases\",\"icon\":\"$undefined\",\"url\":\"/orm/core-concepts/supported-databases/sql-server\",\"$ref\":{\"file\":\"orm/core-concepts/supported-databases/sql-server.mdx\"}},{\"$id\":\"orm/core-concepts/supported-databases/mongodb.mdx\",\"type\":\"page\",\"name\":\"MongoDB\",\"description\":\"How Prisma ORM connects to MongoDB databases\",\"icon\":\"$undefined\",\"url\":\"/orm/core-concepts/supported-databases/mongodb\",\"$ref\":{\"file\":\"orm/core-concepts/supported-databases/mongodb.mdx\"}},{\"$id\":\"orm/core-concepts/supported-databases/database-drivers.mdx\",\"type\":\"page\",\"name\":\"Database drivers\",\"description\":\"Learn how Prisma connects to your database using driver adapters\",\"icon\":\"$undefined\",\"url\":\"/orm/core-concepts/supported-databases/database-drivers\",\"$ref\":{\"file\":\"orm/core-concepts/supported-databases/database-drivers.mdx\"}}],\"$id\":\"orm/core-concepts/supported-databases\",\"$ref\":{\"metaFile\":\"orm/core-concepts/supported-databases/meta.json\"},\"icon\":\"$undefined\"},{\"$id\":\"orm/core-concepts/api-patterns.mdx\",\"type\":\"page\",\"name\":\"API patterns\",\"description\":\"How to use Prisma ORM with REST APIs, GraphQL servers, and fullstack frameworks\",\"icon\":\"$undefined\",\"url\":\"/orm/core-concepts/api-patterns\",\"$ref\":{\"file\":\"orm/core-concepts/api-patterns.mdx\"}},{\"$id\":\"_5\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Prisma Schema\"},{\"type\":\"folder\",\"name\":\"Overview\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-schema/overview/index.mdx\",\"type\":\"page\",\"name\":\"Overview of Prisma Schema\",\"description\":\"The Prisma schema is the main method of configuration when using Prisma. It is typically called schema.prisma and contains your database connection and data model\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/overview\",\"$ref\":{\"file\":\"orm/prisma-schema/overview/index.mdx\"}},{\"$id\":\"orm/prisma-schema/overview/data-sources.mdx\",\"type\":\"page\",\"name\":\"Data sources\",\"description\":\"Data sources enable Prisma to connect to your database. This page explains how to configure data sources in your Prisma schema\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/overview/data-sources\",\"$ref\":{\"file\":\"orm/prisma-schema/overview/data-sources.mdx\"}},{\"$id\":\"orm/prisma-schema/overview/generators.mdx\",\"type\":\"page\",\"name\":\"Generators\",\"description\":\"Generators in your Prisma schema specify what assets are generated when the `prisma generate` command is invoked. This page explains how to configure generators\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/overview/generators\",\"$ref\":{\"file\":\"orm/prisma-schema/overview/generators.mdx\"}},{\"$id\":\"orm/prisma-schema/overview/location.mdx\",\"type\":\"page\",\"name\":\"Schema location\",\"description\":\"Documentation regarding proper location of Prisma Schema including default naming and multiple files.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/overview/location\",\"$ref\":{\"file\":\"orm/prisma-schema/overview/location.mdx\"}}],\"$id\":\"orm/prisma-schema/overview\",\"$ref\":{\"metaFile\":\"orm/prisma-schema/overview/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Data Model\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-schema/data-model/models.mdx\",\"type\":\"page\",\"name\":\"Models\",\"description\":\"Learn about the concepts for building your data model with Prisma: Models, scalar types, enums, attributes, functions, IDs, default values and more\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/models\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/models.mdx\"}},{\"type\":\"folder\",\"name\":\"Relations\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-schema/data-model/relations/index.mdx\",\"type\":\"page\",\"name\":\"Relations\",\"description\":\"A relation is a connection between two models in the Prisma schema. This page explains how you can define one-to-one, one-to-many and many-to-many relations in Prisma\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/relations\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/relations/index.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/relations/one-to-one-relations.mdx\",\"type\":\"page\",\"name\":\"One-to-one relations\",\"description\":\"How to define and work with one-to-one relations in Prisma.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/relations/one-to-one-relations\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/relations/one-to-one-relations.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/relations/one-to-many-relations.mdx\",\"type\":\"page\",\"name\":\"One-to-many relations\",\"description\":\"How to define and work with one-to-many relations in Prisma.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/relations/one-to-many-relations\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/relations/one-to-many-relations.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/relations/many-to-many-relations.mdx\",\"type\":\"page\",\"name\":\"Many-to-many relations\",\"description\":\"How to define and work with many-to-many relations in Prisma.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/relations/many-to-many-relations\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/relations/many-to-many-relations.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/relations/self-relations.mdx\",\"type\":\"page\",\"name\":\"Self-relations\",\"description\":\"How to define and work with self-relations in Prisma.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/relations/self-relations\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/relations/self-relations.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/relations/referential-actions.mdx\",\"type\":\"page\",\"name\":\"Referential actions\",\"description\":\"Referential actions let you define the update and delete behavior of related models on the database level\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/relations/referential-actions\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/relations/referential-actions.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/relations/relation-mode.mdx\",\"type\":\"page\",\"name\":\"Relation mode\",\"description\":\"Manage relations between records with relation modes in Prisma\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/relations/relation-mode\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/relations/relation-mode.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/relations/troubleshooting-relations.mdx\",\"type\":\"page\",\"name\":\"Troubleshooting relations\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/relations/troubleshooting-relations\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/relations/troubleshooting-relations.mdx\"}}],\"$id\":\"orm/prisma-schema/data-model/relations\",\"$ref\":{\"metaFile\":\"orm/prisma-schema/data-model/relations/meta.json\"},\"icon\":\"$undefined\"},{\"$id\":\"orm/prisma-schema/data-model/database-mapping.mdx\",\"type\":\"page\",\"name\":\"Database mapping\",\"description\":\"Learn how to map model and field names to database tables and columns\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/database-mapping\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/database-mapping.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/indexes.mdx\",\"type\":\"page\",\"name\":\"Indexes\",\"description\":\"How to configure index functionality and add full text indexes\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/indexes\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/indexes.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/views.mdx\",\"type\":\"page\",\"name\":\"Views\",\"description\":\"How to include views in your Prisma schema\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/views\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/views.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/multi-schema.mdx\",\"type\":\"page\",\"name\":\"Multi-schema\",\"description\":\"How to use Prisma ORM with multiple database schemas\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/multi-schema\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/multi-schema.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/externally-managed-tables.mdx\",\"type\":\"page\",\"name\":\"External tables\",\"description\":\"How to declare and use externally managed tables in Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/externally-managed-tables\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/externally-managed-tables.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/table-inheritance.mdx\",\"type\":\"page\",\"name\":\"Table inheritance\",\"description\":\"Learn about the use cases and patterns for table inheritance in Prisma ORM that enable usage of union types or polymorphic structures in your application.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/table-inheritance\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/table-inheritance.mdx\"}},{\"$id\":\"orm/prisma-schema/data-model/unsupported-database-features.mdx\",\"type\":\"page\",\"name\":\"Unsupported database features (Prisma Schema)\",\"description\":\"How to support database features that do not have an equivalent syntax in Prisma Schema Language\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/data-model/unsupported-database-features\",\"$ref\":{\"file\":\"orm/prisma-schema/data-model/unsupported-database-features.mdx\"}}],\"$id\":\"orm/prisma-schema/data-model\",\"$ref\":{\"metaFile\":\"orm/prisma-schema/data-model/meta.json\"},\"icon\":\"$undefined\"},{\"$id\":\"orm/prisma-schema/introspection.mdx\",\"type\":\"page\",\"name\":\"What is introspection?\",\"description\":\"Learn how you can introspect your database to generate a data model into your Prisma schema\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/introspection\",\"$ref\":{\"file\":\"orm/prisma-schema/introspection.mdx\"}},{\"$id\":\"orm/prisma-schema/postgresql-extensions.mdx\",\"type\":\"page\",\"name\":\"PostgreSQL extensions\",\"description\":\"How to install and manage PostgreSQL extensions with Prisma ORM using customized migrations, and how to use them in Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-schema/postgresql-extensions\",\"$ref\":{\"file\":\"orm/prisma-schema/postgresql-extensions.mdx\"}},{\"$id\":\"_6\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Prisma Client\"},{\"type\":\"folder\",\"name\":\"Setup and Configuration\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/setup-and-configuration/introduction.mdx\",\"type\":\"page\",\"name\":\"Introduction to Prisma Client\",\"description\":\"Learn how to set up and configure Prisma Client in your project\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/setup-and-configuration/introduction\",\"$ref\":{\"file\":\"orm/prisma-client/setup-and-configuration/introduction.mdx\"}},{\"$id\":\"orm/prisma-client/setup-and-configuration/custom-model-and-field-names.mdx\",\"type\":\"page\",\"name\":\"Custom model and field names\",\"description\":\"Learn how you can decouple the naming of Prisma models from database tables to improve the ergonomics of the generated Prisma Client API\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/setup-and-configuration/custom-model-and-field-names\",\"$ref\":{\"file\":\"orm/prisma-client/setup-and-configuration/custom-model-and-field-names.mdx\"}},{\"$id\":\"orm/prisma-client/setup-and-configuration/read-replicas.mdx\",\"type\":\"page\",\"name\":\"Read replicas\",\"description\":\"Learn how to set up and use read replicas with Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/setup-and-configuration/read-replicas\",\"$ref\":{\"file\":\"orm/prisma-client/setup-and-configuration/read-replicas.mdx\"}},{\"$id\":\"orm/prisma-client/setup-and-configuration/database-polyfills.mdx\",\"type\":\"page\",\"name\":\"Database polyfills\",\"description\":\"Prisma Client provides features that are not achievable with relational databases. These features are referred to as \\\"polyfills\\\" and explained on this page.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/setup-and-configuration/database-polyfills\",\"$ref\":{\"file\":\"orm/prisma-client/setup-and-configuration/database-polyfills.mdx\"}},{\"$id\":\"orm/prisma-client/setup-and-configuration/error-formatting.mdx\",\"type\":\"page\",\"name\":\"Configuring error formatting\",\"description\":\"This page explains how to configure the formatting of errors when using Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/setup-and-configuration/error-formatting\",\"$ref\":{\"file\":\"orm/prisma-client/setup-and-configuration/error-formatting.mdx\"}},{\"type\":\"folder\",\"name\":\"Database Connections\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/setup-and-configuration/databases-connections/index.mdx\",\"type\":\"page\",\"name\":\"Database connections\",\"description\":\"Learn how to manage database connections and configure connection pools\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/setup-and-configuration/databases-connections\",\"$ref\":{\"file\":\"orm/prisma-client/setup-and-configuration/databases-connections/index.mdx\"}},{\"$id\":\"orm/prisma-client/setup-and-configuration/databases-connections/connection-pool.mdx\",\"type\":\"page\",\"name\":\"Connection pool\",\"description\":\"Prisma Client uses a connection pool (from the database driver or driver adapter) to store and manage database connections.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/setup-and-configuration/databases-connections/connection-pool\",\"$ref\":{\"file\":\"orm/prisma-client/setup-and-configuration/databases-connections/connection-pool.mdx\"}},{\"$id\":\"orm/prisma-client/setup-and-configuration/databases-connections/connection-management.mdx\",\"type\":\"page\",\"name\":\"Connection management\",\"description\":\"This page explains how database connections are handled with Prisma Client and how to manually connect and disconnect your database\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/setup-and-configuration/databases-connections/connection-management\",\"$ref\":{\"file\":\"orm/prisma-client/setup-and-configuration/databases-connections/connection-management.mdx\"}},{\"$id\":\"orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx\",\"type\":\"page\",\"name\":\"Configure Prisma Client with PgBouncer\",\"description\":\"Configure Prisma Client with PgBouncer and other poolers: when to use pgbouncer=true, required transaction mode, prepared statements, and Prisma Migrate workarounds\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer\",\"$ref\":{\"file\":\"orm/prisma-client/setup-and-configuration/databases-connections/pgbouncer.mdx\"}}],\"$id\":\"orm/prisma-client/setup-and-configuration/databases-connections\",\"$ref\":{\"metaFile\":\"orm/prisma-client/setup-and-configuration/databases-connections/meta.json\"},\"icon\":\"$undefined\"}],\"$id\":\"orm/prisma-client/setup-and-configuration\",\"$ref\":{\"metaFile\":\"orm/prisma-client/setup-and-configuration/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Queries\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/queries/crud.mdx\",\"type\":\"page\",\"name\":\"CRUD\",\"description\":\"Learn how to perform create, read, update, and delete operations\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/queries/crud\",\"$ref\":{\"file\":\"orm/prisma-client/queries/crud.mdx\"}},{\"$id\":\"orm/prisma-client/queries/relation-queries.mdx\",\"type\":\"page\",\"name\":\"Relation queries\",\"description\":\"Prisma Client provides convenient queries for working with relations, such as a fluent API, nested writes (transactions), nested reads and relation filters\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/queries/relation-queries\",\"$ref\":{\"file\":\"orm/prisma-client/queries/relation-queries.mdx\"}},{\"$id\":\"orm/prisma-client/queries/transactions.mdx\",\"type\":\"page\",\"name\":\"Transactions and batch queries\",\"description\":\"This page explains the transactions API of Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/queries/transactions\",\"$ref\":{\"file\":\"orm/prisma-client/queries/transactions.mdx\"}},{\"$id\":\"orm/prisma-client/queries/aggregation-grouping-summarizing.mdx\",\"type\":\"page\",\"name\":\"Aggregation, grouping, and summarizing\",\"description\":\"Use Prisma Client to aggregate, group by, count, and select distinct.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/queries/aggregation-grouping-summarizing\",\"$ref\":{\"file\":\"orm/prisma-client/queries/aggregation-grouping-summarizing.mdx\"}},{\"type\":\"folder\",\"name\":\"Advanced\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/queries/advanced/query-optimization-performance.mdx\",\"type\":\"page\",\"name\":\"Query optimization using Prisma Optimize\",\"description\":\"How Prisma optimizes queries under the hood\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/queries/advanced/query-optimization-performance\",\"$ref\":{\"file\":\"orm/prisma-client/queries/advanced/query-optimization-performance.mdx\"}}],\"$id\":\"orm/prisma-client/queries/advanced\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"}],\"$id\":\"orm/prisma-client/queries\",\"$ref\":{\"metaFile\":\"orm/prisma-client/queries/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Client Extensions\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/client-extensions/index.mdx\",\"type\":\"page\",\"name\":\"What are Client Extensions\",\"description\":\"Extend the functionality of Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/client-extensions\",\"$ref\":{\"file\":\"orm/prisma-client/client-extensions/index.mdx\"}},{\"$id\":\"orm/prisma-client/client-extensions/client.mdx\",\"type\":\"page\",\"name\":\"Add methods to Prisma Client\",\"description\":\"Extend the functionality of Prisma Client, client component\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/client-extensions/client\",\"$ref\":{\"file\":\"orm/prisma-client/client-extensions/client.mdx\"}},{\"$id\":\"orm/prisma-client/client-extensions/model.mdx\",\"type\":\"page\",\"name\":\"Add custom methods to your models\",\"description\":\"Extend the functionality of Prisma Client, model component\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/client-extensions/model\",\"$ref\":{\"file\":\"orm/prisma-client/client-extensions/model.mdx\"}},{\"$id\":\"orm/prisma-client/client-extensions/query.mdx\",\"type\":\"page\",\"name\":\"Create custom Prisma Client queries\",\"description\":\"Extend the functionality of Prisma Client, query component\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/client-extensions/query\",\"$ref\":{\"file\":\"orm/prisma-client/client-extensions/query.mdx\"}},{\"$id\":\"orm/prisma-client/client-extensions/result.mdx\",\"type\":\"page\",\"name\":\"Add custom fields and methods to query results\",\"description\":\"Extend the functionality of Prisma Client, result component\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/client-extensions/result\",\"$ref\":{\"file\":\"orm/prisma-client/client-extensions/result.mdx\"}},{\"$id\":\"orm/prisma-client/client-extensions/type-utilities.mdx\",\"type\":\"page\",\"name\":\"Type utilities\",\"description\":\"Advanced type safety: improve type safety in your custom model methods\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/client-extensions/type-utilities\",\"$ref\":{\"file\":\"orm/prisma-client/client-extensions/type-utilities.mdx\"}},{\"type\":\"folder\",\"name\":\"Shared Extensions\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/client-extensions/shared-extensions/index.mdx\",\"type\":\"page\",\"name\":\"Shared Prisma Client extensions\",\"description\":\"Share extensions or import shared extensions into your Prisma project\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/client-extensions/shared-extensions\",\"$ref\":{\"file\":\"orm/prisma-client/client-extensions/shared-extensions/index.mdx\"}},{\"$id\":\"orm/prisma-client/client-extensions/shared-extensions/permit-rbac.mdx\",\"type\":\"page\",\"name\":\"Fine-Grained Authorization (Permit)\",\"description\":\"Learn how to implement RBAC, ABAC, and ReBAC authorization in your Prisma applications\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/client-extensions/shared-extensions/permit-rbac\",\"$ref\":{\"file\":\"orm/prisma-client/client-extensions/shared-extensions/permit-rbac.mdx\"}}],\"$id\":\"orm/prisma-client/client-extensions/shared-extensions\",\"$ref\":{\"metaFile\":\"orm/prisma-client/client-extensions/shared-extensions/meta.json\"},\"icon\":\"$undefined\"},{\"$id\":\"orm/prisma-client/client-extensions/extension-examples.mdx\",\"type\":\"page\",\"name\":\"Shared packages \u0026 examples\",\"description\":\"Explore the Prisma Client extensions that have been built by Prisma and its community\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/client-extensions/extension-examples\",\"$ref\":{\"file\":\"orm/prisma-client/client-extensions/extension-examples.mdx\"}}],\"$id\":\"orm/prisma-client/client-extensions\",\"$ref\":{\"metaFile\":\"orm/prisma-client/client-extensions/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Deployment\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/deployment/deploy-prisma.mdx\",\"type\":\"page\",\"name\":\"Deploy Prisma ORM\",\"description\":\"Learn more about the different deployment paradigms for Node.js applications and how they affect deploying an application using Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/deploy-prisma\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/deploy-prisma.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/deploy-database-changes-with-prisma-migrate.mdx\",\"type\":\"page\",\"name\":\"Deploying database changes with Prisma Migrate\",\"description\":\"Learn how to deploy database changes with Prisma Migrate\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/deploy-database-changes-with-prisma-migrate\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/deploy-database-changes-with-prisma-migrate.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx\",\"type\":\"page\",\"name\":\"Deploy migrations from a local environment\",\"description\":\"Learn how to deploy Node.js and TypeScript applications that are using Prisma Client locally\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/deploy-migrations-from-a-local-environment\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/deploy-migrations-from-a-local-environment.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/caveats-when-deploying-to-aws-platforms.mdx\",\"type\":\"page\",\"name\":\"Caveats when deploying to AWS platforms\",\"description\":\"Known caveats when deploying to an AWS platform\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/caveats-when-deploying-to-aws-platforms\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/caveats-when-deploying-to-aws-platforms.mdx\"}},{\"type\":\"folder\",\"name\":\"Serverless\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/deployment/serverless/deploy-to-vercel.mdx\",\"type\":\"page\",\"name\":\"Deploy to Vercel\",\"description\":\"Learn how to deploy a Next.js application based on Prisma Client to Vercel\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/serverless/deploy-to-vercel\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/serverless/deploy-to-vercel.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdx\",\"type\":\"page\",\"name\":\"Deploy to AWS Lambda\",\"description\":\"Learn how to deploy your Prisma ORM-backed applications to AWS Lambda with AWS SAM, Serverless Framework, or SST\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/serverless/deploy-to-aws-lambda\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/serverless/deploy-to-aws-lambda.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/serverless/deploy-to-azure-functions.mdx\",\"type\":\"page\",\"name\":\"Deploy to Azure Functions\",\"description\":\"Learn how to deploy a Prisma Client based REST API to Azure Functions and connect to an Azure SQL database\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/serverless/deploy-to-azure-functions\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/serverless/deploy-to-azure-functions.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/serverless/deploy-to-netlify.mdx\",\"type\":\"page\",\"name\":\"Deploy to Netlify\",\"description\":\"Learn how to deploy Node.js and TypeScript applications that are using Prisma Client to Netlify\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/serverless/deploy-to-netlify\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/serverless/deploy-to-netlify.mdx\"}}],\"$id\":\"orm/prisma-client/deployment/serverless\",\"$ref\":{\"metaFile\":\"orm/prisma-client/deployment/serverless/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Edge\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/deployment/edge/overview.mdx\",\"type\":\"page\",\"name\":\"Deploying edge functions with Prisma ORM\",\"description\":\"Learn how to deploy your Prisma-backed apps to edge functions like Cloudflare Workers or Vercel Edge Functions\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/edge/overview\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/edge/overview.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/edge/deploy-to-vercel.mdx\",\"type\":\"page\",\"name\":\"Deploy to Vercel Edge Functions \u0026 Middleware\",\"description\":\"Learn the things you need to know in order to deploy an Edge function that uses Prisma Client for talking to a database\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/edge/deploy-to-vercel\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/edge/deploy-to-vercel.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/edge/deploy-to-cloudflare.mdx\",\"type\":\"page\",\"name\":\"Deploy to Cloudflare Workers \u0026 Pages\",\"description\":\"Learn the things you need to know in order to deploy an app that uses Prisma Client for talking to a database to a Cloudflare Worker or to Cloudflare Pages\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/edge/deploy-to-cloudflare\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/edge/deploy-to-cloudflare.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/edge/deploy-to-deno-deploy.mdx\",\"type\":\"page\",\"name\":\"Deploy to Deno Deploy\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/edge/deploy-to-deno-deploy\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/edge/deploy-to-deno-deploy.mdx\"}}],\"$id\":\"orm/prisma-client/deployment/edge\",\"$ref\":{\"metaFile\":\"orm/prisma-client/deployment/edge/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Traditional\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/deployment/traditional/deploy-to-heroku.mdx\",\"type\":\"page\",\"name\":\"Deploy to Heroku\",\"description\":\"Learn how to deploy a Node.js server that uses Prisma ORM to Heroku\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/traditional/deploy-to-heroku\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/traditional/deploy-to-heroku.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/traditional/deploy-to-railway.mdx\",\"type\":\"page\",\"name\":\"Deploy to Railway\",\"description\":\"Learn how to deploy an app that uses Prisma ORM and Prisma Postgres to Railway\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/traditional/deploy-to-railway\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/traditional/deploy-to-railway.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/traditional/deploy-to-flyio.mdx\",\"type\":\"page\",\"name\":\"Deploy to Fly.io\",\"description\":\"Learn how to deploy a Node.js server that uses Prisma ORM to Fly.io\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/traditional/deploy-to-flyio\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/traditional/deploy-to-flyio.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/traditional/deploy-to-koyeb.mdx\",\"type\":\"page\",\"name\":\"Deploy to Koyeb\",\"description\":\"Learn how to deploy a Node.js server that uses Prisma ORM to Koyeb Serverless Platform\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/traditional/deploy-to-koyeb\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/traditional/deploy-to-koyeb.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/traditional/deploy-to-render.mdx\",\"type\":\"page\",\"name\":\"Deploy to Render\",\"description\":\"Learn how to deploy a Node.js server that uses Prisma ORM to Render\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/traditional/deploy-to-render\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/traditional/deploy-to-render.mdx\"}},{\"$id\":\"orm/prisma-client/deployment/traditional/deploy-to-sevalla.mdx\",\"type\":\"page\",\"name\":\"Deploy to Sevalla\",\"description\":\"Learn how to deploy a Node.js server that uses Prisma ORM to Sevalla\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/deployment/traditional/deploy-to-sevalla\",\"$ref\":{\"file\":\"orm/prisma-client/deployment/traditional/deploy-to-sevalla.mdx\"}}],\"$id\":\"orm/prisma-client/deployment/traditional\",\"$ref\":{\"metaFile\":\"orm/prisma-client/deployment/traditional/meta.json\"},\"icon\":\"$undefined\"}],\"$id\":\"orm/prisma-client/deployment\",\"$ref\":{\"metaFile\":\"orm/prisma-client/deployment/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Observability and Logging\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/observability-and-logging/logging.mdx\",\"type\":\"page\",\"name\":\"Logging\",\"description\":\"Learn how to configure Prisma Client to log the raw SQL queries it sends to the database and other information\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/observability-and-logging/logging\",\"$ref\":{\"file\":\"orm/prisma-client/observability-and-logging/logging.mdx\"}},{\"$id\":\"orm/prisma-client/observability-and-logging/opentelemetry-tracing.mdx\",\"type\":\"page\",\"name\":\"OpenTelemetry tracing\",\"description\":\"Diagnose application performance with detailed traces of each query\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/observability-and-logging/opentelemetry-tracing\",\"$ref\":{\"file\":\"orm/prisma-client/observability-and-logging/opentelemetry-tracing.mdx\"}},{\"$id\":\"orm/prisma-client/observability-and-logging/sql-comments.mdx\",\"type\":\"page\",\"name\":\"SQL comments\",\"description\":\"Add metadata to your SQL queries as comments for improved observability, debugging, and tracing\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/observability-and-logging/sql-comments\",\"$ref\":{\"file\":\"orm/prisma-client/observability-and-logging/sql-comments.mdx\"}}],\"$id\":\"orm/prisma-client/observability-and-logging\",\"$ref\":{\"metaFile\":\"orm/prisma-client/observability-and-logging/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Debugging and Troubleshooting\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/debugging-and-troubleshooting/debugging.mdx\",\"type\":\"page\",\"name\":\"Debugging\",\"description\":\"This page explains how to enable debugging output for Prisma Client by setting the `DEBUG` environment variable\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/debugging-and-troubleshooting/debugging\",\"$ref\":{\"file\":\"orm/prisma-client/debugging-and-troubleshooting/debugging.mdx\"}},{\"$id\":\"orm/prisma-client/debugging-and-troubleshooting/handling-exceptions-and-errors.mdx\",\"type\":\"page\",\"name\":\"Handling exceptions and errors\",\"description\":\"This page covers how to handle exceptions and errors\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/debugging-and-troubleshooting/handling-exceptions-and-errors\",\"$ref\":{\"file\":\"orm/prisma-client/debugging-and-troubleshooting/handling-exceptions-and-errors.mdx\"}}],\"$id\":\"orm/prisma-client/debugging-and-troubleshooting\",\"$ref\":{\"metaFile\":\"orm/prisma-client/debugging-and-troubleshooting/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Special Fields and Types\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/special-fields-and-types/index.mdx\",\"type\":\"page\",\"name\":\"Fields \u0026 types\",\"description\":\"Learn how to use about special fields and types with Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/special-fields-and-types\",\"$ref\":{\"file\":\"orm/prisma-client/special-fields-and-types/index.mdx\"}},{\"$id\":\"orm/prisma-client/special-fields-and-types/working-with-json-fields.mdx\",\"type\":\"page\",\"name\":\"Working with Json fields\",\"description\":\"How to read, write, and filter by Json fields\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/special-fields-and-types/working-with-json-fields\",\"$ref\":{\"file\":\"orm/prisma-client/special-fields-and-types/working-with-json-fields.mdx\"}},{\"$id\":\"orm/prisma-client/special-fields-and-types/working-with-scalar-lists-arrays.mdx\",\"type\":\"page\",\"name\":\"Working with scalar lists\",\"description\":\"How to read, write, and filter by scalar lists / arrays\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/special-fields-and-types/working-with-scalar-lists-arrays\",\"$ref\":{\"file\":\"orm/prisma-client/special-fields-and-types/working-with-scalar-lists-arrays.mdx\"}},{\"$id\":\"orm/prisma-client/special-fields-and-types/working-with-composite-ids-and-constraints.mdx\",\"type\":\"page\",\"name\":\"Working with compound IDs and unique constraints\",\"description\":\"How to read, write, and filter by compound IDs and unique constraints\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/special-fields-and-types/working-with-composite-ids-and-constraints\",\"$ref\":{\"file\":\"orm/prisma-client/special-fields-and-types/working-with-composite-ids-and-constraints.mdx\"}},{\"$id\":\"orm/prisma-client/special-fields-and-types/composite-types.mdx\",\"type\":\"page\",\"name\":\"Composite types\",\"description\":\"Work with composite types and embedded documents in MongoDB\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/special-fields-and-types/composite-types\",\"$ref\":{\"file\":\"orm/prisma-client/special-fields-and-types/composite-types.mdx\"}},{\"$id\":\"orm/prisma-client/special-fields-and-types/null-and-undefined.mdx\",\"type\":\"page\",\"name\":\"Null and undefined\",\"description\":\"How Prisma Client handles null and undefined\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/special-fields-and-types/null-and-undefined\",\"$ref\":{\"file\":\"orm/prisma-client/special-fields-and-types/null-and-undefined.mdx\"}}],\"$id\":\"orm/prisma-client/special-fields-and-types\",\"$ref\":{\"metaFile\":\"orm/prisma-client/special-fields-and-types/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Testing\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/testing/unit-testing.mdx\",\"type\":\"page\",\"name\":\"Unit testing\",\"description\":\"Learn how to setup and run unit tests with Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/testing/unit-testing\",\"$ref\":{\"file\":\"orm/prisma-client/testing/unit-testing.mdx\"}},{\"$id\":\"orm/prisma-client/testing/integration-testing.mdx\",\"type\":\"page\",\"name\":\"Integration testing\",\"description\":\"Learn how to setup and run integration tests with Prisma and Docker\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/testing/integration-testing\",\"$ref\":{\"file\":\"orm/prisma-client/testing/integration-testing.mdx\"}}],\"$id\":\"orm/prisma-client/testing\",\"$ref\":{\"metaFile\":\"orm/prisma-client/testing/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Type Safety\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/type-safety/index.mdx\",\"type\":\"page\",\"name\":\"Type safety Overview\",\"description\":\"Prisma Client provides full type safety for queries, even for partial queries or included relations. This page explains how to leverage the generated types and utilities\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/type-safety\",\"$ref\":{\"file\":\"orm/prisma-client/type-safety/index.mdx\"}},{\"$id\":\"orm/prisma-client/type-safety/prisma-type-system.mdx\",\"type\":\"page\",\"name\":\"How to use Prisma ORM's type system\",\"description\":\"How to use Prisma ORM's type system\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/type-safety/prisma-type-system\",\"$ref\":{\"file\":\"orm/prisma-client/type-safety/prisma-type-system.mdx\"}},{\"$id\":\"orm/prisma-client/type-safety/operating-against-partial-structures-of-model-types.mdx\",\"type\":\"page\",\"name\":\"Operating against partial structures of your model types\",\"description\":\"This page documents various scenarios for using the generated types from the Prisma namespace\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/type-safety/operating-against-partial-structures-of-model-types\",\"$ref\":{\"file\":\"orm/prisma-client/type-safety/operating-against-partial-structures-of-model-types.mdx\"}}],\"$id\":\"orm/prisma-client/type-safety\",\"$ref\":{\"metaFile\":\"orm/prisma-client/type-safety/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Using Raw SQL\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-client/using-raw-sql/index.mdx\",\"type\":\"page\",\"name\":\"Write your own SQL\",\"description\":\"Learn how to use raw SQL queries in Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/using-raw-sql\",\"$ref\":{\"file\":\"orm/prisma-client/using-raw-sql/index.mdx\"}},{\"$id\":\"orm/prisma-client/using-raw-sql/raw-queries.mdx\",\"type\":\"page\",\"name\":\"Raw queries\",\"description\":\"Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/using-raw-sql/raw-queries\",\"$ref\":{\"file\":\"orm/prisma-client/using-raw-sql/raw-queries.mdx\"}},{\"$id\":\"orm/prisma-client/using-raw-sql/typedsql.mdx\",\"type\":\"page\",\"name\":\"TypedSQL\",\"description\":\"Learn how to use TypedSQL to write fully type-safe SQL queries that are compatible with any SQL console and Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/using-raw-sql/typedsql\",\"$ref\":{\"file\":\"orm/prisma-client/using-raw-sql/typedsql.mdx\"}},{\"$id\":\"orm/prisma-client/using-raw-sql/safeql.mdx\",\"type\":\"page\",\"name\":\"SafeQL \u0026 Prisma Client\",\"description\":\"Learn how to use SafeQL and Prisma Client extensions to work around features not natively supported by Prisma, such as PostGIS\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-client/using-raw-sql/safeql\",\"$ref\":{\"file\":\"orm/prisma-client/using-raw-sql/safeql.mdx\"}}],\"$id\":\"orm/prisma-client/using-raw-sql\",\"$ref\":{\"metaFile\":\"orm/prisma-client/using-raw-sql/meta.json\"},\"icon\":\"$undefined\"},{\"$id\":\"_7\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Prisma Migrate\"},{\"$id\":\"orm/prisma-migrate/index.mdx\",\"type\":\"page\",\"name\":\"Overview of Prisma Migrate\",\"description\":\"Learn everything you need to know about Prisma Migrate\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate\",\"$ref\":{\"file\":\"orm/prisma-migrate/index.mdx\"}},{\"$id\":\"orm/prisma-migrate/getting-started.mdx\",\"type\":\"page\",\"name\":\"Getting started with Prisma Migrate\",\"description\":\"Learn how to migrate your schema in a development environment using Prisma Migrate\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/getting-started\",\"$ref\":{\"file\":\"orm/prisma-migrate/getting-started.mdx\"}},{\"$id\":\"orm/prisma-migrate/understanding-prisma-migrate/mental-model.mdx\",\"type\":\"page\",\"name\":\"Understanding Migrations\",\"description\":\"A mental model guide for working with Prisma Migrate in your project\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/understanding-prisma-migrate/mental-model\",\"$ref\":{\"file\":\"orm/prisma-migrate/understanding-prisma-migrate/mental-model.mdx\"}},{\"$id\":\"orm/prisma-migrate/understanding-prisma-migrate/migration-histories.mdx\",\"type\":\"page\",\"name\":\"Migration histories\",\"description\":\"How Prisma ORM uses migration histories to track changes to your schema\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/understanding-prisma-migrate/migration-histories\",\"$ref\":{\"file\":\"orm/prisma-migrate/understanding-prisma-migrate/migration-histories.mdx\"}},{\"$id\":\"orm/prisma-migrate/understanding-prisma-migrate/shadow-database.mdx\",\"type\":\"page\",\"name\":\"About the shadow database\",\"description\":\"Learn how Prisma Migrate uses shadow databases to detect schema drift\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/understanding-prisma-migrate/shadow-database\",\"$ref\":{\"file\":\"orm/prisma-migrate/understanding-prisma-migrate/shadow-database.mdx\"}},{\"$id\":\"orm/prisma-migrate/understanding-prisma-migrate/limitations-and-known-issues.mdx\",\"type\":\"page\",\"name\":\"Limitations and known issues\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/understanding-prisma-migrate/limitations-and-known-issues\",\"$ref\":{\"file\":\"orm/prisma-migrate/understanding-prisma-migrate/limitations-and-known-issues.mdx\"}},{\"type\":\"folder\",\"name\":\"Workflows\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/prisma-migrate/workflows/prototyping-your-schema.mdx\",\"type\":\"page\",\"name\":\"Prototyping your schema\",\"description\":\"Rapidly prototype your Prisma schema using db push without migrations\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/prototyping-your-schema\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/prototyping-your-schema.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/development-and-production.mdx\",\"type\":\"page\",\"name\":\"Development and production\",\"description\":\"How to use Prisma Migrate commands in development and production environments\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/development-and-production\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/development-and-production.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/baselining.mdx\",\"type\":\"page\",\"name\":\"Baselining a database\",\"description\":\"How to initialize a migration history for an existing database that contains important data.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/baselining\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/baselining.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/customizing-migrations.mdx\",\"type\":\"page\",\"name\":\"Customizing migrations\",\"description\":\"How to edit a migration file before applying it to avoid data loss in production.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/customizing-migrations\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/customizing-migrations.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/generating-down-migrations.mdx\",\"type\":\"page\",\"name\":\"Generating down migrations\",\"description\":\"How to generate a down migration SQL file that reverses a given migration file\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/generating-down-migrations\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/generating-down-migrations.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/squashing-migrations.mdx\",\"type\":\"page\",\"name\":\"Squashing migrations\",\"description\":\"How to squash multiple migration files into a single migration\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/squashing-migrations\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/squashing-migrations.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/patching-and-hotfixing.mdx\",\"type\":\"page\",\"name\":\"Patching \u0026 hotfixing\",\"description\":\"How to reconcile the migration history after applying a hotfix or patch to a production environment.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/patching-and-hotfixing\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/patching-and-hotfixing.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/seeding.mdx\",\"type\":\"page\",\"name\":\"Seeding\",\"description\":\"Learn how to seed your database using Prisma ORM's integrated seeding functionality and Prisma Client\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/seeding\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/seeding.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/native-database-types.mdx\",\"type\":\"page\",\"name\":\"Native database types\",\"description\":\"Native database types\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/native-database-types\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/native-database-types.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/native-database-functions.mdx\",\"type\":\"page\",\"name\":\"Native database functions\",\"description\":\"How to enable PostgreSQL native database functions for projects that use Prisma Migrate.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/native-database-functions\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/native-database-functions.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/unsupported-database-features.mdx\",\"type\":\"page\",\"name\":\"Unsupported database features (Prisma Migrate)\",\"description\":\"How to include unsupported database features for projects that use Prisma Migrate\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/unsupported-database-features\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/unsupported-database-features.mdx\"}},{\"$id\":\"orm/prisma-migrate/workflows/troubleshooting.mdx\",\"type\":\"page\",\"name\":\"Troubleshooting\",\"description\":\"Troubleshooting issues with Prisma Migrate in a development environment.\",\"icon\":\"$undefined\",\"url\":\"/orm/prisma-migrate/workflows/troubleshooting\",\"$ref\":{\"file\":\"orm/prisma-migrate/workflows/troubleshooting.mdx\"}}],\"$id\":\"orm/prisma-migrate/workflows\",\"$ref\":{\"metaFile\":\"orm/prisma-migrate/workflows/meta.json\"},\"icon\":\"$undefined\"},{\"$id\":\"_8\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Reference\"},{\"$id\":\"orm/reference/prisma-cli-reference.mdx\",\"type\":\"page\",\"name\":\"Prisma CLI reference\",\"description\":\"This page gives an overview of all available Prisma CLI commands, explains their options and shows numerous usage examples\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/prisma-cli-reference\",\"$ref\":{\"file\":\"orm/reference/prisma-cli-reference.mdx\"}},{\"$id\":\"orm/reference/prisma-client-reference.mdx\",\"type\":\"page\",\"name\":\"Prisma Client API\",\"description\":\"Complete API reference for Prisma Client queries and operations\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/prisma-client-reference\",\"$ref\":{\"file\":\"orm/reference/prisma-client-reference.mdx\"}},{\"$id\":\"orm/reference/prisma-schema-reference.mdx\",\"type\":\"page\",\"name\":\"Schema API\",\"description\":\"Reference for Prisma Schema Language (PSL)\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/prisma-schema-reference\",\"$ref\":{\"file\":\"orm/reference/prisma-schema-reference.mdx\"}},{\"$id\":\"orm/reference/prisma-config-reference.mdx\",\"type\":\"page\",\"name\":\"Config API\",\"description\":\"Complete reference for prisma.config.ts configuration options\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/prisma-config-reference\",\"$ref\":{\"file\":\"orm/reference/prisma-config-reference.mdx\"}},{\"$id\":\"orm/reference/connection-urls.mdx\",\"type\":\"page\",\"name\":\"Connection URLs\",\"description\":\"Learn about the format and syntax Prisma ORM uses for defining database connection URLs for PostgreSQL, MySQL and SQLite\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/connection-urls\",\"$ref\":{\"file\":\"orm/reference/connection-urls.mdx\"}},{\"$id\":\"orm/reference/environment-variables-reference.mdx\",\"type\":\"page\",\"name\":\"Environment Variables\",\"description\":\"Reference for Prisma environment variables\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/environment-variables-reference\",\"$ref\":{\"file\":\"orm/reference/environment-variables-reference.mdx\"}},{\"$id\":\"orm/reference/database-features.mdx\",\"type\":\"page\",\"name\":\"Database Features\",\"description\":\"Database features supported in Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/database-features\",\"$ref\":{\"file\":\"orm/reference/database-features.mdx\"}},{\"$id\":\"orm/reference/supported-databases.mdx\",\"type\":\"page\",\"name\":\"Supported databases\",\"description\":\"This page lists all the databases and their versions that are supported by Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/supported-databases\",\"$ref\":{\"file\":\"orm/reference/supported-databases.mdx\"}},{\"$id\":\"orm/reference/system-requirements.mdx\",\"type\":\"page\",\"name\":\"System requirements\",\"description\":\"System requirements for running Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/system-requirements\",\"$ref\":{\"file\":\"orm/reference/system-requirements.mdx\"}},{\"$id\":\"orm/reference/error-reference.mdx\",\"type\":\"page\",\"name\":\"Error Reference\",\"description\":\"Prisma Client, Migrate, and Introspection error codes\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/error-reference\",\"$ref\":{\"file\":\"orm/reference/error-reference.mdx\"}},{\"$id\":\"orm/reference/errors/index.mdx\",\"type\":\"page\",\"name\":\"Prisma Error Reference\",\"description\":\"Common Prisma ORM errors and how to troubleshoot them\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/errors\",\"$ref\":{\"file\":\"orm/reference/errors/index.mdx\"}},{\"$id\":\"orm/reference/preview-features/client-preview-features.mdx\",\"type\":\"page\",\"name\":\"Prisma Client \u0026 Prisma schema\",\"description\":\"Prisma Client and Prisma schema features that are currently in Preview\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/preview-features/client-preview-features\",\"$ref\":{\"file\":\"orm/reference/preview-features/client-preview-features.mdx\"}},{\"$id\":\"orm/reference/preview-features/cli-preview-features.mdx\",\"type\":\"page\",\"name\":\"Prisma CLI Preview features\",\"description\":\"Prisma CLI features that are currently in Preview.\",\"icon\":\"$undefined\",\"url\":\"/orm/reference/preview-features/cli-preview-features\",\"$ref\":{\"file\":\"orm/reference/preview-features/cli-preview-features.mdx\"}},{\"$id\":\"_9\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"More\"},{\"$id\":\"orm/more/best-practices.mdx\",\"type\":\"page\",\"name\":\"Best practices\",\"description\":\"Learn production-ready patterns for schema design, query optimization, type safety, security, and deployment with Prisma ORM.\",\"icon\":\"$undefined\",\"url\":\"/orm/more/best-practices\",\"$ref\":{\"file\":\"orm/more/best-practices.mdx\"}},{\"$id\":\"orm/more/releases.mdx\",\"type\":\"page\",\"name\":\"ORM releases and maturity levels\",\"description\":\"Learn about the release process, versioning, and maturity of Prisma ORM components and how to deal with breaking changes that might happen throughout releases\",\"icon\":\"$undefined\",\"url\":\"/orm/more/releases\",\"$ref\":{\"file\":\"orm/more/releases.mdx\"}},{\"type\":\"folder\",\"name\":\"Comparisons\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/more/comparisons/prisma-and-drizzle.mdx\",\"type\":\"page\",\"name\":\"Drizzle\",\"description\":\"Learn how Prisma ORM compares to Drizzle\",\"icon\":\"$undefined\",\"url\":\"/orm/more/comparisons/prisma-and-drizzle\",\"$ref\":{\"file\":\"orm/more/comparisons/prisma-and-drizzle.mdx\"}},{\"$id\":\"orm/more/comparisons/prisma-and-typeorm.mdx\",\"type\":\"page\",\"name\":\"TypeORM\",\"description\":\"Learn how Prisma compares to TypeORM\",\"icon\":\"$undefined\",\"url\":\"/orm/more/comparisons/prisma-and-typeorm\",\"$ref\":{\"file\":\"orm/more/comparisons/prisma-and-typeorm.mdx\"}},{\"$id\":\"orm/more/comparisons/prisma-and-sequelize.mdx\",\"type\":\"page\",\"name\":\"Sequelize\",\"description\":\"Learn how Prisma ORM compares to Sequelize\",\"icon\":\"$undefined\",\"url\":\"/orm/more/comparisons/prisma-and-sequelize\",\"$ref\":{\"file\":\"orm/more/comparisons/prisma-and-sequelize.mdx\"}},{\"$id\":\"orm/more/comparisons/prisma-and-mongoose.mdx\",\"type\":\"page\",\"name\":\"Mongoose\",\"description\":\"Learn how Prisma ORM compares to Mongoose\",\"icon\":\"$undefined\",\"url\":\"/orm/more/comparisons/prisma-and-mongoose\",\"$ref\":{\"file\":\"orm/more/comparisons/prisma-and-mongoose.mdx\"}}],\"$id\":\"orm/more/comparisons\",\"$ref\":{\"metaFile\":\"orm/more/comparisons/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Dev environment\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/more/dev-environment/environment-variables.mdx\",\"type\":\"page\",\"name\":\"Environment variables\",\"description\":\"Learn how to manage environment variables in your Prisma ORM project\",\"icon\":\"$undefined\",\"url\":\"/orm/more/dev-environment/environment-variables\",\"$ref\":{\"file\":\"orm/more/dev-environment/environment-variables.mdx\"}},{\"$id\":\"orm/more/dev-environment/editor-setup.mdx\",\"type\":\"page\",\"name\":\"Editor setup\",\"description\":\"Learn how to configure your editor and IDEs for an optimal developer experience with Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/orm/more/dev-environment/editor-setup\",\"$ref\":{\"file\":\"orm/more/dev-environment/editor-setup.mdx\"}}],\"$id\":\"orm/more/dev-environment\",\"$ref\":{\"metaFile\":\"orm/more/dev-environment/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Troubleshooting\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"orm/more/troubleshooting/nextjs.mdx\",\"type\":\"page\",\"name\":\"Next.js\",\"description\":\"Best practices and troubleshooting for using Prisma ORM with Next.js applications\",\"icon\":\"$undefined\",\"url\":\"/orm/more/troubleshooting/nextjs\",\"$ref\":{\"file\":\"orm/more/troubleshooting/nextjs.mdx\"}},{\"$id\":\"orm/more/troubleshooting/nuxt.mdx\",\"type\":\"page\",\"name\":\"Nuxt\",\"description\":\"Learn how to integrate Prisma ORM with your Nuxt application\",\"icon\":\"$undefined\",\"url\":\"/orm/more/troubleshooting/nuxt\",\"$ref\":{\"file\":\"orm/more/troubleshooting/nuxt.mdx\"}},{\"$id\":\"orm/more/troubleshooting/many-to-many-relations.mdx\",\"type\":\"page\",\"name\":\"Many-to-many relations\",\"description\":\"Learn how to model, query, and convert many-to-many relations with Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/orm/more/troubleshooting/many-to-many-relations\",\"$ref\":{\"file\":\"orm/more/troubleshooting/many-to-many-relations.mdx\"}},{\"$id\":\"orm/more/troubleshooting/check-constraints.mdx\",\"type\":\"page\",\"name\":\"Check constraints\",\"description\":\"Learn how to configure CHECK constraints for data validation with Prisma ORM and PostgreSQL\",\"icon\":\"$undefined\",\"url\":\"/orm/more/troubleshooting/check-constraints\",\"$ref\":{\"file\":\"orm/more/troubleshooting/check-constraints.mdx\"}},{\"$id\":\"orm/more/troubleshooting/raw-sql-comparisons.mdx\",\"type\":\"page\",\"name\":\"Raw SQL comparisons\",\"description\":\"Compare columns of the same table with raw queries in Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/orm/more/troubleshooting/raw-sql-comparisons\",\"$ref\":{\"file\":\"orm/more/troubleshooting/raw-sql-comparisons.mdx\"}},{\"$id\":\"orm/more/troubleshooting/graphql-autocompletion.mdx\",\"type\":\"page\",\"name\":\"GraphQL autocompletion\",\"description\":\"Get autocompletion for Prisma Client queries in GraphQL resolvers with plain JavaScript\",\"icon\":\"$undefined\",\"url\":\"/orm/more/troubleshooting/graphql-autocompletion\",\"$ref\":{\"file\":\"orm/more/troubleshooting/graphql-autocompletion.mdx\"}},{\"$id\":\"orm/more/troubleshooting/bundler-issues.mdx\",\"type\":\"page\",\"name\":\"Bundler issues\",\"description\":\"Solve ENOENT package error with vercel/pkg and other bundlers\",\"icon\":\"$undefined\",\"url\":\"/orm/more/troubleshooting/bundler-issues\",\"$ref\":{\"file\":\"orm/more/troubleshooting/bundler-issues.mdx\"}},{\"$id\":\"orm/more/troubleshooting/typescript-performance.mdx\",\"type\":\"page\",\"name\":\"TypeScript performance\",\"description\":\"Optimize TypeScript compilation performance when working with large Prisma schemas\",\"icon\":\"$undefined\",\"url\":\"/orm/more/troubleshooting/typescript-performance\",\"$ref\":{\"file\":\"orm/more/troubleshooting/typescript-performance.mdx\"}}],\"$id\":\"orm/more/troubleshooting\",\"$ref\":{\"metaFile\":\"orm/more/troubleshooting/meta.json\"},\"icon\":\"$undefined\"}],\"$id\":\"orm\",\"$ref\":{\"metaFile\":\"orm/meta.json\"},\"icon\":\"$L7\"},{\"type\":\"folder\",\"name\":\"Postgres\",\"root\":true,\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"_10\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Introduction\"},{\"$id\":\"postgres/index.mdx\",\"type\":\"page\",\"name\":\"Prisma Postgres\",\"description\":\"Connect to Prisma Postgres from Prisma ORM, serverless runtimes, and PostgreSQL clients.\",\"icon\":\"$undefined\",\"url\":\"/postgres\",\"$ref\":{\"file\":\"postgres/index.mdx\"}},{\"$id\":\"postgres/npx-create-db.mdx\",\"type\":\"page\",\"name\":\"create-db\",\"description\":\"Learn how to provision temporary Prisma Postgres databases with create-db\",\"icon\":\"$undefined\",\"url\":\"/postgres/npx-create-db\",\"$ref\":{\"file\":\"postgres/npx-create-db.mdx\"}},{\"$id\":\"_11\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Database\"},{\"$id\":\"postgres/database/query-insights.mdx\",\"type\":\"page\",\"name\":\"Query Insights\",\"description\":\"Inspect slow queries, connect Prisma calls to SQL, and apply focused fixes with Prisma Postgres.\",\"icon\":\"$undefined\",\"url\":\"/postgres/database/query-insights\",\"$ref\":{\"file\":\"postgres/database/query-insights.mdx\"}},{\"$id\":\"postgres/database/connection-pooling.mdx\",\"type\":\"page\",\"name\":\"Connection pooling\",\"description\":\"Learn how to use connection pooling with your Prisma Postgres database.\",\"icon\":\"$undefined\",\"url\":\"/postgres/database/connection-pooling\",\"$ref\":{\"file\":\"postgres/database/connection-pooling.mdx\"}},{\"$id\":\"postgres/database/direct-connections.mdx\",\"type\":\"page\",\"name\":\"Direct connections\",\"description\":\"Learn about connecting directly to your Prisma Postgres database via direct TCP\",\"icon\":\"$undefined\",\"url\":\"/postgres/database/direct-connections\",\"$ref\":{\"file\":\"postgres/database/direct-connections.mdx\"}},{\"$id\":\"postgres/database/backups.mdx\",\"type\":\"page\",\"name\":\"Backups\",\"description\":\"Manage and restore database backups in Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/postgres/database/backups\",\"$ref\":{\"file\":\"postgres/database/backups.mdx\"}},{\"$id\":\"postgres/database/postgres-extensions.mdx\",\"type\":\"page\",\"name\":\"PostgreSQL extensions\",\"description\":\"Enable and use PostgreSQL extensions with Prisma Postgres.\",\"icon\":\"$undefined\",\"url\":\"/postgres/database/postgres-extensions\",\"$ref\":{\"file\":\"postgres/database/postgres-extensions.mdx\"}},{\"$id\":\"postgres/database/serverless-driver.mdx\",\"type\":\"page\",\"name\":\"Serverless driver\",\"description\":\"Connect to Prisma Postgres from serverless and edge environments\",\"icon\":\"$undefined\",\"url\":\"/postgres/database/serverless-driver\",\"$ref\":{\"file\":\"postgres/database/serverless-driver.mdx\"}},{\"$id\":\"postgres/database/local-development.mdx\",\"type\":\"page\",\"name\":\"Local development\",\"description\":\"Set up and use Prisma Postgres for local development\",\"icon\":\"$undefined\",\"url\":\"/postgres/database/local-development\",\"$ref\":{\"file\":\"postgres/database/local-development.mdx\"}},{\"$id\":\"_12\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Tools \u0026 Integrations\"},{\"$id\":\"postgres/integrations/raycast.mdx\",\"type\":\"page\",\"name\":\"Raycast\",\"description\":\"Create and manage Prisma Postgres databases directly from Raycast\",\"icon\":\"$undefined\",\"url\":\"/postgres/integrations/raycast\",\"$ref\":{\"file\":\"postgres/integrations/raycast.mdx\"}},{\"$id\":\"_13\",\"type\":\"page\",\"icon\":\"$undefined\",\"name\":\"MCP\",\"url\":\"/ai/tools/mcp-server\"},{\"$id\":\"_14\",\"type\":\"page\",\"icon\":\"$undefined\",\"name\":\"Studio\",\"url\":\"/studio\"},{\"$id\":\"_15\",\"type\":\"page\",\"icon\":\"$undefined\",\"name\":\"VSCode\",\"url\":\"/guides/postgres/vscode\"},{\"$id\":\"_16\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Infrastructure as Code\"},{\"$id\":\"postgres/iac/terraform.mdx\",\"type\":\"page\",\"name\":\"Terraform\",\"description\":\"Provision and manage Prisma Postgres projects, databases, and connections using Terraform.\",\"icon\":\"$undefined\",\"url\":\"/postgres/iac/terraform\",\"$ref\":{\"file\":\"postgres/iac/terraform.mdx\"}},{\"$id\":\"postgres/iac/pulumi.mdx\",\"type\":\"page\",\"name\":\"Pulumi\",\"description\":\"Provision and manage Prisma Postgres with Pulumi using the Prisma Terraform provider bridge.\",\"icon\":\"$undefined\",\"url\":\"/postgres/iac/pulumi\",\"$ref\":{\"file\":\"postgres/iac/pulumi.mdx\"}},{\"$id\":\"postgres/iac/alchemy.mdx\",\"type\":\"page\",\"name\":\"Alchemy\",\"description\":\"Provision and manage Prisma Postgres projects, databases, and connections with Alchemy.\",\"icon\":\"$undefined\",\"url\":\"/postgres/iac/alchemy\",\"$ref\":{\"file\":\"postgres/iac/alchemy.mdx\"}},{\"$id\":\"_17\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"More\"},{\"$id\":\"postgres/error-reference.mdx\",\"type\":\"page\",\"name\":\"Error reference\",\"description\":\"Error reference documentation for Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/postgres/error-reference\",\"$ref\":{\"file\":\"postgres/error-reference.mdx\"}},{\"$id\":\"postgres/troubleshooting.mdx\",\"type\":\"page\",\"name\":\"Troubleshooting\",\"description\":\"Resolve common issues with Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/postgres/troubleshooting\",\"$ref\":{\"file\":\"postgres/troubleshooting.mdx\"}},{\"$id\":\"postgres/faq.mdx\",\"type\":\"page\",\"name\":\"Prisma Postgres FAQ\",\"description\":\"Common questions and answers about Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/postgres/faq\",\"$ref\":{\"file\":\"postgres/faq.mdx\"}}],\"$id\":\"postgres\",\"$ref\":{\"metaFile\":\"postgres/meta.json\"},\"icon\":\"$L8\"},{\"type\":\"folder\",\"name\":\"CLI\",\"root\":true,\"defaultOpen\":true,\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"_18\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Introduction\"},{\"$id\":\"cli/index.mdx\",\"type\":\"page\",\"name\":\"CLI Overview\",\"description\":\"The Prisma CLI is the command-line interface for Prisma ORM. Use it to initialize projects, generate Prisma Client, manage databases, run migrations, and more\",\"icon\":\"$undefined\",\"url\":\"/cli\",\"$ref\":{\"file\":\"cli/index.mdx\"}},{\"$id\":\"_19\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Standalone commands\"},{\"$id\":\"cli/init.mdx\",\"type\":\"page\",\"name\":\"init\",\"description\":\"Set up a new Prisma project in the current directory\",\"icon\":\"$undefined\",\"url\":\"/cli/init\",\"$ref\":{\"file\":\"cli/init.mdx\"}},{\"$id\":\"cli/generate.mdx\",\"type\":\"page\",\"name\":\"generate\",\"description\":\"Generate artifacts like Prisma Client based on your Prisma schema\",\"icon\":\"$undefined\",\"url\":\"/cli/generate\",\"$ref\":{\"file\":\"cli/generate.mdx\"}},{\"$id\":\"cli/validate.mdx\",\"type\":\"page\",\"name\":\"validate\",\"description\":\"Validate your Prisma schema for syntax errors and configuration issues\",\"icon\":\"$undefined\",\"url\":\"/cli/validate\",\"$ref\":{\"file\":\"cli/validate.mdx\"}},{\"$id\":\"cli/format.mdx\",\"type\":\"page\",\"name\":\"format\",\"description\":\"Format and validate your Prisma schema file with consistent structure\",\"icon\":\"$undefined\",\"url\":\"/cli/format\",\"$ref\":{\"file\":\"cli/format.mdx\"}},{\"$id\":\"cli/studio.mdx\",\"type\":\"page\",\"name\":\"studio\",\"description\":\"Browse and manage your database data with Prisma Studio web interface\",\"icon\":\"$undefined\",\"url\":\"/cli/studio\",\"$ref\":{\"file\":\"cli/studio.mdx\"}},{\"$id\":\"cli/mcp.mdx\",\"type\":\"page\",\"name\":\"mcp\",\"description\":\"Start an MCP server to use with AI development tools\",\"icon\":\"$undefined\",\"url\":\"/cli/mcp\",\"$ref\":{\"file\":\"cli/mcp.mdx\"}},{\"$id\":\"cli/debug.mdx\",\"type\":\"page\",\"name\":\"debug\",\"description\":\"Display Prisma debug information including schema paths, engine binaries, environment variables, and cache directories for troubleshooting\",\"icon\":\"$undefined\",\"url\":\"/cli/debug\",\"$ref\":{\"file\":\"cli/debug.mdx\"}},{\"$id\":\"cli/version.mdx\",\"type\":\"page\",\"name\":\"version\",\"description\":\"Display Prisma version information for CLI, Client, and engine binaries\",\"icon\":\"$undefined\",\"url\":\"/cli/version\",\"$ref\":{\"file\":\"cli/version.mdx\"}},{\"$id\":\"_20\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Migrate commands\"},{\"$id\":\"cli/migrate/index.mdx\",\"type\":\"page\",\"name\":\"migrate\",\"description\":\"Update your database schema with migrations\",\"icon\":\"$undefined\",\"url\":\"/cli/migrate\",\"$ref\":{\"file\":\"cli/migrate/index.mdx\"}},{\"$id\":\"cli/migrate/dev.mdx\",\"type\":\"page\",\"name\":\"dev\",\"description\":\"Create a migration from changes in Prisma schema, apply it to the database, and trigger generators\",\"icon\":\"$undefined\",\"url\":\"/cli/migrate/dev\",\"$ref\":{\"file\":\"cli/migrate/dev.mdx\"}},{\"$id\":\"cli/migrate/reset.mdx\",\"type\":\"page\",\"name\":\"reset\",\"description\":\"Reset your database and apply all migrations. All data will be lost\",\"icon\":\"$undefined\",\"url\":\"/cli/migrate/reset\",\"$ref\":{\"file\":\"cli/migrate/reset.mdx\"}},{\"$id\":\"cli/migrate/deploy.mdx\",\"type\":\"page\",\"name\":\"deploy\",\"description\":\"Apply pending migrations to update the database schema in production/staging\",\"icon\":\"$undefined\",\"url\":\"/cli/migrate/deploy\",\"$ref\":{\"file\":\"cli/migrate/deploy.mdx\"}},{\"$id\":\"cli/migrate/status.mdx\",\"type\":\"page\",\"name\":\"status\",\"description\":\"Check the status of your database migrations\",\"icon\":\"$undefined\",\"url\":\"/cli/migrate/status\",\"$ref\":{\"file\":\"cli/migrate/status.mdx\"}},{\"$id\":\"cli/migrate/resolve.mdx\",\"type\":\"page\",\"name\":\"resolve\",\"description\":\"Resolve issues with database migrations in deployment databases\",\"icon\":\"$undefined\",\"url\":\"/cli/migrate/resolve\",\"$ref\":{\"file\":\"cli/migrate/resolve.mdx\"}},{\"$id\":\"cli/migrate/diff.mdx\",\"type\":\"page\",\"name\":\"diff\",\"description\":\"Compare the database schema from two arbitrary sources\",\"icon\":\"$undefined\",\"url\":\"/cli/migrate/diff\",\"$ref\":{\"file\":\"cli/migrate/diff.mdx\"}},{\"$id\":\"_21\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Dev commands\"},{\"$id\":\"cli/dev/index.mdx\",\"type\":\"page\",\"name\":\"dev\",\"description\":\"Start a local Prisma Postgres server for development\",\"icon\":\"$undefined\",\"url\":\"/cli/dev\",\"$ref\":{\"file\":\"cli/dev/index.mdx\"}},{\"$id\":\"cli/dev/ls.mdx\",\"type\":\"page\",\"name\":\"ls\",\"description\":\"List available local Prisma Postgres servers\",\"icon\":\"$undefined\",\"url\":\"/cli/dev/ls\",\"$ref\":{\"file\":\"cli/dev/ls.mdx\"}},{\"$id\":\"cli/dev/rm.mdx\",\"type\":\"page\",\"name\":\"rm\",\"description\":\"Remove local Prisma Postgres servers\",\"icon\":\"$undefined\",\"url\":\"/cli/dev/rm\",\"$ref\":{\"file\":\"cli/dev/rm.mdx\"}},{\"$id\":\"cli/dev/start.mdx\",\"type\":\"page\",\"name\":\"start\",\"description\":\"Start one or more stopped local Prisma Postgres servers\",\"icon\":\"$undefined\",\"url\":\"/cli/dev/start\",\"$ref\":{\"file\":\"cli/dev/start.mdx\"}},{\"$id\":\"cli/dev/stop.mdx\",\"type\":\"page\",\"name\":\"stop\",\"description\":\"Stop local Prisma Postgres servers\",\"icon\":\"$undefined\",\"url\":\"/cli/dev/stop\",\"$ref\":{\"file\":\"cli/dev/stop.mdx\"}},{\"$id\":\"_22\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"DB commands\"},{\"$id\":\"cli/db/index.mdx\",\"type\":\"page\",\"name\":\"db\",\"description\":\"Manage your database schema and lifecycle during development\",\"icon\":\"$undefined\",\"url\":\"/cli/db\",\"$ref\":{\"file\":\"cli/db/index.mdx\"}},{\"$id\":\"cli/db/pull.mdx\",\"type\":\"page\",\"name\":\"pull\",\"description\":\"Pull the state from the database to the Prisma schema using introspection\",\"icon\":\"$undefined\",\"url\":\"/cli/db/pull\",\"$ref\":{\"file\":\"cli/db/pull.mdx\"}},{\"$id\":\"cli/db/push.mdx\",\"type\":\"page\",\"name\":\"push\",\"description\":\"Push the state from your Prisma schema to your database\",\"icon\":\"$undefined\",\"url\":\"/cli/db/push\",\"$ref\":{\"file\":\"cli/db/push.mdx\"}},{\"$id\":\"cli/db/seed.mdx\",\"type\":\"page\",\"name\":\"seed\",\"description\":\"Seed your database with test or initial data using custom scripts\",\"icon\":\"$undefined\",\"url\":\"/cli/db/seed\",\"$ref\":{\"file\":\"cli/db/seed.mdx\"}},{\"$id\":\"cli/db/execute.mdx\",\"type\":\"page\",\"name\":\"execute\",\"description\":\"Execute native commands to your database\",\"icon\":\"$undefined\",\"url\":\"/cli/db/execute\",\"$ref\":{\"file\":\"cli/db/execute.mdx\"}},{\"$id\":\"_23\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Console commands\"},{\"$id\":\"cli/console/index.mdx\",\"type\":\"page\",\"name\":\"platform\",\"description\":\"Manage Prisma Console workspaces, projects, environments, and connection strings\",\"icon\":\"$undefined\",\"url\":\"/cli/console\",\"$ref\":{\"file\":\"cli/console/index.mdx\"}},{\"$id\":\"cli/console/auth.mdx\",\"type\":\"page\",\"name\":\"auth\",\"description\":\"Manage authentication with Prisma Console using the platform auth command\",\"icon\":\"$undefined\",\"url\":\"/cli/console/auth\",\"$ref\":{\"file\":\"cli/console/auth.mdx\"}},{\"$id\":\"cli/console/workspace.mdx\",\"type\":\"page\",\"name\":\"workspace\",\"description\":\"List and manage workspaces in Prisma Console\",\"icon\":\"$undefined\",\"url\":\"/cli/console/workspace\",\"$ref\":{\"file\":\"cli/console/workspace.mdx\"}},{\"$id\":\"cli/console/project.mdx\",\"type\":\"page\",\"name\":\"project\",\"description\":\"Create, list, and delete projects within Prisma Console workspaces\",\"icon\":\"$undefined\",\"url\":\"/cli/console/project\",\"$ref\":{\"file\":\"cli/console/project.mdx\"}},{\"$id\":\"cli/console/environment.mdx\",\"type\":\"page\",\"name\":\"environment\",\"description\":\"Create, list, and delete environments within Prisma Console projects\",\"icon\":\"$undefined\",\"url\":\"/cli/console/environment\",\"$ref\":{\"file\":\"cli/console/environment.mdx\"}},{\"$id\":\"cli/console/apikey.mdx\",\"type\":\"page\",\"name\":\"apikey\",\"description\":\"Create, list, and delete connection strings for Prisma Console environments\",\"icon\":\"$undefined\",\"url\":\"/cli/console/apikey\",\"$ref\":{\"file\":\"cli/console/apikey.mdx\"}}],\"$id\":\"cli\",\"$ref\":{\"metaFile\":\"cli/meta.json\"},\"icon\":\"$L9\"},{\"type\":\"folder\",\"name\":\"Guides\",\"root\":true,\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/index.mdx\",\"type\":\"page\",\"name\":\"Guides\",\"description\":\"A collection of guides for various tasks and workflows\",\"icon\":\"$undefined\",\"url\":\"/guides\",\"$ref\":{\"file\":\"guides/index.mdx\"}},{\"type\":\"folder\",\"name\":\"Frameworks\",\"root\":\"$undefined\",\"defaultOpen\":true,\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/frameworks/nextjs.mdx\",\"type\":\"page\",\"name\":\"Next.js\",\"description\":\"Learn how to use Prisma ORM in a Next.js app and deploy it to Vercel\",\"icon\":\"$undefined\",\"url\":\"/guides/frameworks/nextjs\",\"$ref\":{\"file\":\"guides/frameworks/nextjs.mdx\"}},{\"$id\":\"guides/frameworks/astro.mdx\",\"type\":\"page\",\"name\":\"Astro\",\"description\":\"Learn how to use Prisma ORM in an Astro app\",\"icon\":\"$undefined\",\"url\":\"/guides/frameworks/astro\",\"$ref\":{\"file\":\"guides/frameworks/astro.mdx\"}},{\"$id\":\"guides/frameworks/nuxt.mdx\",\"type\":\"page\",\"name\":\"Nuxt\",\"description\":\"A step-by-step guide to setting up and using Prisma ORM and Prisma Postgres in a Nuxt app\",\"icon\":\"$undefined\",\"url\":\"/guides/frameworks/nuxt\",\"$ref\":{\"file\":\"guides/frameworks/nuxt.mdx\"}},{\"$id\":\"guides/frameworks/sveltekit.mdx\",\"type\":\"page\",\"name\":\"SvelteKit\",\"description\":\"Learn how to use Prisma ORM in a SvelteKit app\",\"icon\":\"$undefined\",\"url\":\"/guides/frameworks/sveltekit\",\"$ref\":{\"file\":\"guides/frameworks/sveltekit.mdx\"}},{\"$id\":\"guides/frameworks/solid-start.mdx\",\"type\":\"page\",\"name\":\"SolidStart\",\"description\":\"Learn how to use Prisma ORM in a SolidStart app\",\"icon\":\"$undefined\",\"url\":\"/guides/frameworks/solid-start\",\"$ref\":{\"file\":\"guides/frameworks/solid-start.mdx\"}},{\"$id\":\"guides/frameworks/react-router-7.mdx\",\"type\":\"page\",\"name\":\"React Router 7\",\"description\":\"Learn how to use Prisma ORM and Prisma Postgres in a React Router 7 app\",\"icon\":\"$undefined\",\"url\":\"/guides/frameworks/react-router-7\",\"$ref\":{\"file\":\"guides/frameworks/react-router-7.mdx\"}},{\"$id\":\"guides/frameworks/tanstack-start.mdx\",\"type\":\"page\",\"name\":\"TanStack Start\",\"description\":\"Learn how to use Prisma ORM in a TanStack Start app\",\"icon\":\"$undefined\",\"url\":\"/guides/frameworks/tanstack-start\",\"$ref\":{\"file\":\"guides/frameworks/tanstack-start.mdx\"}},{\"$id\":\"guides/frameworks/nestjs.mdx\",\"type\":\"page\",\"name\":\"NestJS\",\"description\":\"Learn how to use Prisma ORM in a NestJS app\",\"icon\":\"$undefined\",\"url\":\"/guides/frameworks/nestjs\",\"$ref\":{\"file\":\"guides/frameworks/nestjs.mdx\"}},{\"$id\":\"guides/frameworks/hono.mdx\",\"type\":\"page\",\"name\":\"Hono\",\"description\":\"Learn how to use Prisma ORM in a Hono app\",\"icon\":\"$undefined\",\"url\":\"/guides/frameworks/hono\",\"$ref\":{\"file\":\"guides/frameworks/hono.mdx\"}},{\"$id\":\"guides/frameworks/elysia.mdx\",\"type\":\"page\",\"name\":\"Elysia\",\"description\":\"Learn how to use Prisma ORM in an Elysia app\",\"icon\":\"$undefined\",\"url\":\"/guides/frameworks/elysia\",\"$ref\":{\"file\":\"guides/frameworks/elysia.mdx\"}}],\"$id\":\"guides/frameworks\",\"$ref\":{\"metaFile\":\"guides/frameworks/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Runtimes\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/runtimes/bun.mdx\",\"type\":\"page\",\"name\":\"Bun\",\"description\":\"Learn how to use Prisma ORM in a Bun application with Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/guides/runtimes/bun\",\"$ref\":{\"file\":\"guides/runtimes/bun.mdx\"}},{\"$id\":\"guides/runtimes/deno.mdx\",\"type\":\"page\",\"name\":\"Deno\",\"description\":\"Learn how to use Prisma ORM in a Deno application with Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/guides/runtimes/deno\",\"$ref\":{\"file\":\"guides/runtimes/deno.mdx\"}}],\"$id\":\"guides/runtimes\",\"$ref\":{\"metaFile\":\"guides/runtimes/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Deployment\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/deployment/cloudflare-workers.mdx\",\"type\":\"page\",\"name\":\"Cloudflare Workers\",\"description\":\"Learn how to use Prisma ORM in a Cloudflare Workers project\",\"icon\":\"$undefined\",\"url\":\"/guides/deployment/cloudflare-workers\",\"$ref\":{\"file\":\"guides/deployment/cloudflare-workers.mdx\"}},{\"$id\":\"guides/deployment/cloudflare-d1.mdx\",\"type\":\"page\",\"name\":\"Cloudflare D1\",\"description\":\"Learn how to use Prisma ORM with Cloudflare D1\",\"icon\":\"$undefined\",\"url\":\"/guides/deployment/cloudflare-d1\",\"$ref\":{\"file\":\"guides/deployment/cloudflare-d1.mdx\"}},{\"$id\":\"guides/deployment/docker.mdx\",\"type\":\"page\",\"name\":\"Docker\",\"description\":\"Learn step-by-step configure a Prisma ORM app in Docker\",\"icon\":\"$undefined\",\"url\":\"/guides/deployment/docker\",\"$ref\":{\"file\":\"guides/deployment/docker.mdx\"}},{\"$id\":\"guides/deployment/turborepo.mdx\",\"type\":\"page\",\"name\":\"Turborepo\",\"description\":\"Learn step-by-step how to integrate Prisma ORM with Turborepo to build modular, scalable monorepo architectures efficiently\",\"icon\":\"$undefined\",\"url\":\"/guides/deployment/turborepo\",\"$ref\":{\"file\":\"guides/deployment/turborepo.mdx\"}},{\"$id\":\"guides/deployment/pnpm-workspaces.mdx\",\"type\":\"page\",\"name\":\"pnpm workspaces\",\"description\":\"Learn step-by-step how to integrate Prisma ORM in a pnpm workspaces monorepo to build scalable and modular applications efficiently\",\"icon\":\"$undefined\",\"url\":\"/guides/deployment/pnpm-workspaces\",\"$ref\":{\"file\":\"guides/deployment/pnpm-workspaces.mdx\"}},{\"$id\":\"guides/deployment/bun-workspaces.mdx\",\"type\":\"page\",\"name\":\"Bun workspaces\",\"description\":\"Learn step-by-step how to integrate Prisma ORM in a Bun workspaces monorepo to build scalable and modular applications efficiently\",\"icon\":\"$undefined\",\"url\":\"/guides/deployment/bun-workspaces\",\"$ref\":{\"file\":\"guides/deployment/bun-workspaces.mdx\"}}],\"$id\":\"guides/deployment\",\"$ref\":{\"metaFile\":\"guides/deployment/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Authentication\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"type\":\"folder\",\"name\":\"Clerk\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/authentication/clerk/nextjs.mdx\",\"type\":\"page\",\"name\":\"Clerk (with Next.js)\",\"description\":\"Learn how to use Prisma ORM in a Next.js app with Clerk Auth\",\"icon\":\"$undefined\",\"url\":\"/guides/authentication/clerk/nextjs\",\"$ref\":{\"file\":\"guides/authentication/clerk/nextjs.mdx\"}},{\"$id\":\"guides/authentication/clerk/astro.mdx\",\"type\":\"page\",\"name\":\"Clerk (with Astro)\",\"description\":\"Learn how to use Prisma ORM in an Astro app with Clerk Auth\",\"icon\":\"$undefined\",\"url\":\"/guides/authentication/clerk/astro\",\"$ref\":{\"file\":\"guides/authentication/clerk/astro.mdx\"}}],\"$id\":\"guides/authentication/clerk\",\"$ref\":{\"metaFile\":\"guides/authentication/clerk/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Better Auth\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/authentication/better-auth/nextjs.mdx\",\"type\":\"page\",\"name\":\"Better Auth (with Next.js)\",\"description\":\"Learn how to use Prisma ORM in a Next.js app with Better Auth\",\"icon\":\"$undefined\",\"url\":\"/guides/authentication/better-auth/nextjs\",\"$ref\":{\"file\":\"guides/authentication/better-auth/nextjs.mdx\"}},{\"$id\":\"guides/authentication/better-auth/astro.mdx\",\"type\":\"page\",\"name\":\"Better Auth (with Astro)\",\"description\":\"Learn how to use Prisma ORM in an Astro app with Better Auth\",\"icon\":\"$undefined\",\"url\":\"/guides/authentication/better-auth/astro\",\"$ref\":{\"file\":\"guides/authentication/better-auth/astro.mdx\"}}],\"$id\":\"guides/authentication/better-auth\",\"$ref\":{\"metaFile\":\"guides/authentication/better-auth/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Authjs\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/authentication/authjs/nextjs.mdx\",\"type\":\"page\",\"name\":\"Auth.js (with Next.js)\",\"description\":\"Learn how to use Prisma ORM in a Next.js app with Auth.js\",\"icon\":\"$undefined\",\"url\":\"/guides/authentication/authjs/nextjs\",\"$ref\":{\"file\":\"guides/authentication/authjs/nextjs.mdx\"}}],\"$id\":\"guides/authentication/authjs\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"}],\"$id\":\"guides/authentication\",\"$ref\":{\"metaFile\":\"guides/authentication/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Integrations\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/integrations/ai-sdk.mdx\",\"type\":\"page\",\"name\":\"AI SDK (with Next.js)\",\"description\":\"Build a chat application with AI SDK, Prisma, and Next.js to store chat sessions and messages\",\"icon\":\"$undefined\",\"url\":\"/guides/integrations/ai-sdk\",\"$ref\":{\"file\":\"guides/integrations/ai-sdk.mdx\"}},{\"$id\":\"guides/integrations/embed-studio.mdx\",\"type\":\"page\",\"name\":\"Embedded Prisma Studio (with Next.js)\",\"description\":\"Learn how to embed Prisma Studio directly in your Next.js application for database management\",\"icon\":\"$undefined\",\"url\":\"/guides/integrations/embed-studio\",\"$ref\":{\"file\":\"guides/integrations/embed-studio.mdx\"}},{\"$id\":\"guides/integrations/github-actions.mdx\",\"type\":\"page\",\"name\":\"GitHub Actions\",\"description\":\"Provision and manage Prisma Postgres databases per pull request using GitHub Actions and Prisma Management API\",\"icon\":\"$undefined\",\"url\":\"/guides/integrations/github-actions\",\"$ref\":{\"file\":\"guides/integrations/github-actions.mdx\"}},{\"$id\":\"guides/integrations/vercel-deployment.mdx\",\"type\":\"page\",\"name\":\"Vercel app deployment\",\"description\":\"Learn how to programmatically deploy applications with Vercel and Prisma Postgres using the instant deployment API\",\"icon\":\"$undefined\",\"url\":\"/guides/integrations/vercel-deployment\",\"$ref\":{\"file\":\"guides/integrations/vercel-deployment.mdx\"}},{\"$id\":\"guides/integrations/deno.mdx\",\"type\":\"page\",\"name\":\"Prisma Postgres on Deno\",\"description\":\"Learn how to integrate Prisma Postgres in a Deno Deploy project using a simple Deno application\",\"icon\":\"$undefined\",\"url\":\"/guides/integrations/deno\",\"$ref\":{\"file\":\"guides/integrations/deno.mdx\"}},{\"$id\":\"guides/integrations/datadog.mdx\",\"type\":\"page\",\"name\":\"Datadog\",\"description\":\"Learn how to configure Datadog tracing for a Prisma ORM project. Capture spans for every query using the @prisma/instrumentation package, dd-trace, and view them in Datadog\",\"icon\":\"$undefined\",\"url\":\"/guides/integrations/datadog\",\"$ref\":{\"file\":\"guides/integrations/datadog.mdx\"}},{\"$id\":\"guides/integrations/permit-io.mdx\",\"type\":\"page\",\"name\":\"Permit.io\",\"description\":\"Learn how to implement access control with Prisma ORM with Permit.io\",\"icon\":\"$undefined\",\"url\":\"/guides/integrations/permit-io\",\"$ref\":{\"file\":\"guides/integrations/permit-io.mdx\"}},{\"$id\":\"guides/integrations/shopify.mdx\",\"type\":\"page\",\"name\":\"Shopify\",\"description\":\"Learn how to use Prisma Postgres with Shopify\",\"icon\":\"$undefined\",\"url\":\"/guides/integrations/shopify\",\"$ref\":{\"file\":\"guides/integrations/shopify.mdx\"}},{\"$id\":\"guides/integrations/neon-accelerate.mdx\",\"type\":\"page\",\"name\":\"Neon with Accelerate\",\"description\":\"Learn how to set up PostgreSQL on Neon with Prisma Accelerate's Connection Pool\",\"icon\":\"$undefined\",\"url\":\"/guides/integrations/neon-accelerate\",\"$ref\":{\"file\":\"guides/integrations/neon-accelerate.mdx\"}},{\"$id\":\"guides/integrations/supabase-accelerate.mdx\",\"type\":\"page\",\"name\":\"Supabase with Accelerate\",\"description\":\"Learn how to set up PostgreSQL on Supabase with Prisma Accelerate's Connection Pool\",\"icon\":\"$undefined\",\"url\":\"/guides/integrations/supabase-accelerate\",\"$ref\":{\"file\":\"guides/integrations/supabase-accelerate.mdx\"}}],\"$id\":\"guides/integrations\",\"$ref\":{\"metaFile\":\"guides/integrations/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Postgres\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/postgres/vercel.mdx\",\"type\":\"page\",\"name\":\"Vercel\",\"description\":\"Learn how to create Prisma Postgres databases via the Vercel Marketplace and deploy your applications with it\",\"icon\":\"$undefined\",\"url\":\"/guides/postgres/vercel\",\"$ref\":{\"file\":\"guides/postgres/vercel.mdx\"}},{\"$id\":\"guides/postgres/netlify.mdx\",\"type\":\"page\",\"name\":\"Netlify\",\"description\":\"Learn how to create Prisma Postgres databases via the official Netlify extension and deploy your applications with it\",\"icon\":\"$undefined\",\"url\":\"/guides/postgres/netlify\",\"$ref\":{\"file\":\"guides/postgres/netlify.mdx\"}},{\"$id\":\"guides/postgres/flyio.mdx\",\"type\":\"page\",\"name\":\"Fly.io\",\"description\":\"Learn how to deploy applications using Prisma Postgres to Fly.io\",\"icon\":\"$undefined\",\"url\":\"/guides/postgres/flyio\",\"$ref\":{\"file\":\"guides/postgres/flyio.mdx\"}},{\"$id\":\"guides/postgres/vscode.mdx\",\"type\":\"page\",\"name\":\"VS Code\",\"description\":\"The Prisma VS Code extension provides a management UI for Prisma Postgres and superpowers for Copilot agent mode\",\"icon\":\"$undefined\",\"url\":\"/guides/postgres/vscode\",\"$ref\":{\"file\":\"guides/postgres/vscode.mdx\"}},{\"$id\":\"guides/postgres/idx.mdx\",\"type\":\"page\",\"name\":\"Firebase Studio\",\"description\":\"Learn how to use Prisma Postgres in the online Firebase Studio\",\"icon\":\"$undefined\",\"url\":\"/guides/postgres/idx\",\"$ref\":{\"file\":\"guides/postgres/idx.mdx\"}},{\"$id\":\"guides/postgres/viewing-data.mdx\",\"type\":\"page\",\"name\":\"Viewing data\",\"description\":\"Viewing and editing data in Prisma Postgres via Prisma Studio or other database GUIs\",\"icon\":\"$undefined\",\"url\":\"/guides/postgres/viewing-data\",\"$ref\":{\"file\":\"guides/postgres/viewing-data.mdx\"}}],\"$id\":\"guides/postgres\",\"$ref\":{\"metaFile\":\"guides/postgres/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Database\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/database/multiple-databases.mdx\",\"type\":\"page\",\"name\":\"Multiple databases\",\"description\":\"Learn how to use multiple Prisma Clients in a single app to connect to multiple databases, handle migrations, and deploy your application to Vercel\",\"icon\":\"$undefined\",\"url\":\"/guides/database/multiple-databases\",\"$ref\":{\"file\":\"guides/database/multiple-databases.mdx\"}},{\"$id\":\"guides/database/data-migration.mdx\",\"type\":\"page\",\"name\":\"Expand-and-contract migrations\",\"description\":\"Learn how to perform data migrations using the expand and contract pattern with Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/guides/database/data-migration\",\"$ref\":{\"file\":\"guides/database/data-migration.mdx\"}},{\"$id\":\"guides/database/schema-changes.mdx\",\"type\":\"page\",\"name\":\"Schema management in teams\",\"description\":\"Learn how to use Prisma Migrate effectively when collaborating on a project as a team\",\"icon\":\"$undefined\",\"url\":\"/guides/database/schema-changes\",\"$ref\":{\"file\":\"guides/database/schema-changes.mdx\"}}],\"$id\":\"guides/database\",\"$ref\":{\"metaFile\":\"guides/database/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Switch to Prisma ORM\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/switch-to-prisma-orm/from-drizzle.mdx\",\"type\":\"page\",\"name\":\"Drizzle\",\"description\":\"Learn how to migrate from Drizzle to Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/guides/switch-to-prisma-orm/from-drizzle\",\"$ref\":{\"file\":\"guides/switch-to-prisma-orm/from-drizzle.mdx\"}},{\"$id\":\"guides/switch-to-prisma-orm/from-sql-orms.mdx\",\"type\":\"page\",\"name\":\"SQL ORMs\",\"description\":\"Learn how to migrate from Sequelize or TypeORM to Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/guides/switch-to-prisma-orm/from-sql-orms\",\"$ref\":{\"file\":\"guides/switch-to-prisma-orm/from-sql-orms.mdx\"}},{\"$id\":\"guides/switch-to-prisma-orm/from-mongoose.mdx\",\"type\":\"page\",\"name\":\"Mongoose\",\"description\":\"Learn how to migrate from Mongoose to Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/guides/switch-to-prisma-orm/from-mongoose\",\"$ref\":{\"file\":\"guides/switch-to-prisma-orm/from-mongoose.mdx\"}}],\"$id\":\"guides/switch-to-prisma-orm\",\"$ref\":{\"metaFile\":\"guides/switch-to-prisma-orm/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Switch to Prisma Postgres\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/switch-to-prisma-postgres/from-supabase.mdx\",\"type\":\"page\",\"name\":\"Supabase\",\"description\":\"Learn how to migrate from Supabase to Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/guides/switch-to-prisma-postgres/from-supabase\",\"$ref\":{\"file\":\"guides/switch-to-prisma-postgres/from-supabase.mdx\"}},{\"$id\":\"guides/switch-to-prisma-postgres/from-neon.mdx\",\"type\":\"page\",\"name\":\"Neon\",\"description\":\"Learn how to migrate from Neon to Prisma Postgres\",\"icon\":\"$undefined\",\"url\":\"/guides/switch-to-prisma-postgres/from-neon\",\"$ref\":{\"file\":\"guides/switch-to-prisma-postgres/from-neon.mdx\"}}],\"$id\":\"guides/switch-to-prisma-postgres\",\"$ref\":{\"metaFile\":\"guides/switch-to-prisma-postgres/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Upgrade Prisma ORM\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"guides/upgrade-prisma-orm/v7.mdx\",\"type\":\"page\",\"name\":\"Upgrade to v7\",\"description\":\"Comprehensive guide for upgrading to Prisma ORM v7\",\"icon\":\"$undefined\",\"url\":\"/guides/upgrade-prisma-orm/v7\",\"$ref\":{\"file\":\"guides/upgrade-prisma-orm/v7.mdx\"}},{\"$id\":\"guides/upgrade-prisma-orm/v6.mdx\",\"type\":\"page\",\"name\":\"Upgrade to v6\",\"description\":\"Comprehensive guide for upgrading to Prisma ORM v6\",\"icon\":\"$undefined\",\"url\":\"/guides/upgrade-prisma-orm/v6\",\"$ref\":{\"file\":\"guides/upgrade-prisma-orm/v6.mdx\"}},{\"$id\":\"guides/upgrade-prisma-orm/v5.mdx\",\"type\":\"page\",\"name\":\"Upgrade to v5\",\"description\":\"Comprehensive guide for upgrading to Prisma ORM v5\",\"icon\":\"$undefined\",\"url\":\"/guides/upgrade-prisma-orm/v5\",\"$ref\":{\"file\":\"guides/upgrade-prisma-orm/v5.mdx\"}},{\"$id\":\"guides/upgrade-prisma-orm/v4.mdx\",\"type\":\"page\",\"name\":\"Upgrade to v4\",\"description\":\"Comprehensive guide for upgrading to Prisma ORM v4\",\"icon\":\"$undefined\",\"url\":\"/guides/upgrade-prisma-orm/v4\",\"$ref\":{\"file\":\"guides/upgrade-prisma-orm/v4.mdx\"}},{\"$id\":\"guides/upgrade-prisma-orm/v3.mdx\",\"type\":\"page\",\"name\":\"Upgrade to v3\",\"description\":\"Comprehensive guide for upgrading to Prisma ORM v3\",\"icon\":\"$undefined\",\"url\":\"/guides/upgrade-prisma-orm/v3\",\"$ref\":{\"file\":\"guides/upgrade-prisma-orm/v3.mdx\"}},{\"$id\":\"guides/upgrade-prisma-orm/v1.mdx\",\"type\":\"page\",\"name\":\"Upgrade to v1\",\"description\":\"Comprehensive guide for upgrading from Prisma 1 to Prisma ORM v1\",\"icon\":\"$undefined\",\"url\":\"/guides/upgrade-prisma-orm/v1\",\"$ref\":{\"file\":\"guides/upgrade-prisma-orm/v1.mdx\"}}],\"$id\":\"guides/upgrade-prisma-orm\",\"$ref\":{\"metaFile\":\"guides/upgrade-prisma-orm/meta.json\"},\"icon\":\"$undefined\"},{\"$id\":\"guides/making-guides.mdx\",\"type\":\"page\",\"name\":\"Writing guides\",\"description\":\"Learn how to write clear, consistent, and helpful guides for Prisma documentation\",\"icon\":\"$undefined\",\"url\":\"/guides/making-guides\",\"$ref\":{\"file\":\"guides/making-guides.mdx\"}}],\"$id\":\"guides\",\"$ref\":{\"metaFile\":\"guides/meta.json\"},\"icon\":\"$La\"},{\"type\":\"folder\",\"name\":\"Studio\",\"root\":true,\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"_24\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Introduction\"},{\"$id\":\"studio/index.mdx\",\"type\":\"page\",\"name\":\"Prisma Studio\",\"description\":\"A visual database editor for viewing and managing your data with Prisma\",\"icon\":\"$undefined\",\"url\":\"/studio\",\"$ref\":{\"file\":\"studio/index.mdx\"}},{\"$id\":\"studio/getting-started.mdx\",\"type\":\"page\",\"name\":\"Getting Started\",\"description\":\"Learn how to set up and use Prisma Studio to manage your database\",\"icon\":\"$undefined\",\"url\":\"/studio/getting-started\",\"$ref\":{\"file\":\"studio/getting-started.mdx\"}},{\"$id\":\"_25\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Integrations\"},{\"$id\":\"studio/integrations/vscode-integration.mdx\",\"type\":\"page\",\"name\":\"Studio in VS Code\",\"description\":\"Learn how to use Prisma Studio directly in VS Code\",\"icon\":\"$undefined\",\"url\":\"/studio/integrations/vscode-integration\",\"$ref\":{\"file\":\"studio/integrations/vscode-integration.mdx\"}},{\"$id\":\"studio/integrations/embedding.mdx\",\"type\":\"page\",\"name\":\"Embed Studio\",\"description\":\"Learn how to embed Prisma Studio in your own applications to provide users with an amazing data editing experience.\",\"icon\":\"$undefined\",\"url\":\"/studio/integrations/embedding\",\"$ref\":{\"file\":\"studio/integrations/embedding.mdx\"}}],\"$id\":\"studio\",\"$ref\":{\"metaFile\":\"studio/meta.json\"},\"icon\":\"$Lb\"},{\"type\":\"folder\",\"name\":\"Accelerate\",\"root\":true,\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"_26\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Introduction\"},{\"$id\":\"accelerate/index.mdx\",\"type\":\"page\",\"name\":\"Prisma Accelerate\",\"description\":\"Prisma Accelerate is a global database cache with built-in connection pooling that helps improve database performance in Serverless and Edge applications\",\"icon\":\"$undefined\",\"url\":\"/accelerate\",\"$ref\":{\"file\":\"accelerate/index.mdx\"}},{\"$id\":\"accelerate/getting-started.mdx\",\"type\":\"page\",\"name\":\"Getting started\",\"description\":\"Learn how to get up and running with Prisma Accelerate\",\"icon\":\"$undefined\",\"url\":\"/accelerate/getting-started\",\"$ref\":{\"file\":\"accelerate/getting-started.mdx\"}},{\"$id\":\"_27\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Features\"},{\"$id\":\"accelerate/connection-pooling.mdx\",\"type\":\"page\",\"name\":\"Connection Pooling\",\"description\":\"Learn about everything you need to know to use Accelerate's connection pooling\",\"icon\":\"$undefined\",\"url\":\"/accelerate/connection-pooling\",\"$ref\":{\"file\":\"accelerate/connection-pooling.mdx\"}},{\"$id\":\"accelerate/caching.mdx\",\"type\":\"page\",\"name\":\"Caching queries\",\"description\":\"Learn everything you need to know to use Accelerate's global database caching\",\"icon\":\"$undefined\",\"url\":\"/accelerate/caching\",\"$ref\":{\"file\":\"accelerate/caching.mdx\"}},{\"$id\":\"accelerate/local-development.mdx\",\"type\":\"page\",\"name\":\"Local development\",\"description\":\"Learn how to use Prisma Accelerate in a development environment\",\"icon\":\"$undefined\",\"url\":\"/accelerate/local-development\",\"$ref\":{\"file\":\"accelerate/local-development.mdx\"}},{\"$id\":\"accelerate/static-ip.mdx\",\"type\":\"page\",\"name\":\"Static IP\",\"description\":\"Learn enabling Static IP for Prisma Accelerate\",\"icon\":\"$undefined\",\"url\":\"/accelerate/static-ip\",\"$ref\":{\"file\":\"accelerate/static-ip.mdx\"}},{\"$id\":\"accelerate/examples.mdx\",\"type\":\"page\",\"name\":\"Examples\",\"description\":\"Check out ready-to-run examples for Prisma Accelerate\",\"icon\":\"$undefined\",\"url\":\"/accelerate/examples\",\"$ref\":{\"file\":\"accelerate/examples.mdx\"}},{\"$id\":\"accelerate/evaluating.mdx\",\"type\":\"page\",\"name\":\"Evaluating\",\"description\":\"Learn about evaluating Prisma Accelerate\",\"icon\":\"$undefined\",\"url\":\"/accelerate/evaluating\",\"$ref\":{\"file\":\"accelerate/evaluating.mdx\"}},{\"$id\":\"accelerate/compare.mdx\",\"type\":\"page\",\"name\":\"Compare Accelerate\",\"description\":\"Learn how Prisma Accelerate compares to other connection poolers like pgbouncer\",\"icon\":\"$undefined\",\"url\":\"/accelerate/compare\",\"$ref\":{\"file\":\"accelerate/compare.mdx\"}},{\"$id\":\"_28\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Reference\"},{\"$id\":\"accelerate/reference/api-reference.mdx\",\"type\":\"page\",\"name\":\"API Reference\",\"description\":\"API reference documentation for Accelerate\",\"icon\":\"$undefined\",\"url\":\"/accelerate/reference/api-reference\",\"$ref\":{\"file\":\"accelerate/reference/api-reference.mdx\"}},{\"$id\":\"_29\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"More\"},{\"$id\":\"accelerate/more/known-limitations.mdx\",\"type\":\"page\",\"name\":\"Known limitations\",\"description\":\"Learn about limitations of Accelerate\",\"icon\":\"$undefined\",\"url\":\"/accelerate/more/known-limitations\",\"$ref\":{\"file\":\"accelerate/more/known-limitations.mdx\"}},{\"$id\":\"accelerate/more/troubleshoot.mdx\",\"type\":\"page\",\"name\":\"Troubleshooting\",\"description\":\"Troubleshoot common Prisma Accelerate errors and connection issues\",\"icon\":\"$undefined\",\"url\":\"/accelerate/more/troubleshoot\",\"$ref\":{\"file\":\"accelerate/more/troubleshoot.mdx\"}},{\"$id\":\"accelerate/more/faq.mdx\",\"type\":\"page\",\"name\":\"FAQ\",\"description\":\"Frequently asked questions about Accelerate\",\"icon\":\"$undefined\",\"url\":\"/accelerate/more/faq\",\"$ref\":{\"file\":\"accelerate/more/faq.mdx\"}},{\"$id\":\"accelerate/more/feedback.mdx\",\"type\":\"page\",\"name\":\"Feedback\",\"description\":\"Learn where to submit feedback about Accelerate\",\"icon\":\"$undefined\",\"url\":\"/accelerate/more/feedback\",\"$ref\":{\"file\":\"accelerate/more/feedback.mdx\"}}],\"$id\":\"accelerate\",\"$ref\":{\"metaFile\":\"accelerate/meta.json\"},\"icon\":\"$Lc\"},{\"type\":\"folder\",\"name\":\"Query Insights\",\"root\":true,\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"_30\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Introduction\"},{\"$id\":\"query-insights/index.mdx\",\"type\":\"page\",\"name\":\"Query Insights\",\"description\":\"Inspect slow queries, connect Prisma calls to SQL, and apply focused fixes with Prisma Postgres.\",\"icon\":\"$undefined\",\"url\":\"/query-insights\",\"$ref\":{\"file\":\"query-insights/index.mdx\"}}],\"$id\":\"query-insights\",\"$ref\":{\"metaFile\":\"query-insights/meta.json\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"AI\",\"root\":true,\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"_31\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Introduction\"},{\"$id\":\"ai/index.mdx\",\"type\":\"page\",\"name\":\"Build faster with Prisma + AI\",\"description\":\"Build faster with Prisma and AI coding tools like Cursor and ChatGPT\",\"icon\":\"$undefined\",\"url\":\"/ai\",\"$ref\":{\"file\":\"ai/index.mdx\"}},{\"$id\":\"_32\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Tools\"},{\"$id\":\"ai/tools/cursor.mdx\",\"type\":\"page\",\"name\":\"Cursor\",\"description\":\"Learn tips and best practices for using Prisma ORM with the Cursor AI code editor\",\"icon\":\"$undefined\",\"url\":\"/ai/tools/cursor\",\"$ref\":{\"file\":\"ai/tools/cursor.mdx\"}},{\"$id\":\"ai/tools/windsurf.mdx\",\"type\":\"page\",\"name\":\"Windsurf\",\"description\":\"Learn tips and best practices for using Prisma ORM with the Windsurf AI code editor\",\"icon\":\"$undefined\",\"url\":\"/ai/tools/windsurf\",\"$ref\":{\"file\":\"ai/tools/windsurf.mdx\"}},{\"$id\":\"ai/tools/github-copilot.mdx\",\"type\":\"page\",\"name\":\"GitHub Copilot\",\"description\":\"Learn about the features available with GitHub Copilot and Prisma ORM, plus best practices and tips\",\"icon\":\"$undefined\",\"url\":\"/ai/tools/github-copilot\",\"$ref\":{\"file\":\"ai/tools/github-copilot.mdx\"}},{\"$id\":\"ai/tools/chatgpt.mdx\",\"type\":\"page\",\"name\":\"ChatGPT\",\"description\":\"Learn how to add the remote Prisma MCP server to ChatGPT to manage your Prisma Postgres databases\",\"icon\":\"$undefined\",\"url\":\"/ai/tools/chatgpt\",\"$ref\":{\"file\":\"ai/tools/chatgpt.mdx\"}},{\"$id\":\"ai/tools/tabnine.mdx\",\"type\":\"page\",\"name\":\"Tabnine\",\"description\":\"Learn tips and best practices for using Prisma ORM with the Tabnine AI code editor\",\"icon\":\"$undefined\",\"url\":\"/ai/tools/tabnine\",\"$ref\":{\"file\":\"ai/tools/tabnine.mdx\"}},{\"$id\":\"ai/tools/mcp-server.mdx\",\"type\":\"page\",\"name\":\"MCP server\",\"description\":\"Manage Prisma Postgres databases using LLMs with the Prisma Model-Context-Protocol (MCP) Server\",\"icon\":\"$undefined\",\"url\":\"/ai/tools/mcp-server\",\"$ref\":{\"file\":\"ai/tools/mcp-server.mdx\"}},{\"$id\":\"ai/tools/skills.mdx\",\"type\":\"page\",\"name\":\"Agent Skills\",\"description\":\"Give your AI coding agent up-to-date Prisma knowledge with installable skills\",\"icon\":\"$undefined\",\"url\":\"/ai/tools/skills\",\"$ref\":{\"file\":\"ai/tools/skills.mdx\"}},{\"$id\":\"_33\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Prompts\"},{\"$id\":\"ai/prompts/nextjs.mdx\",\"type\":\"page\",\"name\":\"Next.js + Prisma\",\"description\":\"Step-by-step guide for integrating Prisma ORM and Prisma Postgres in an NextJS project\",\"icon\":\"$undefined\",\"url\":\"/ai/prompts/nextjs\",\"$ref\":{\"file\":\"ai/prompts/nextjs.mdx\"}},{\"$id\":\"ai/prompts/astro.mdx\",\"type\":\"page\",\"name\":\"Astro + Prisma\",\"description\":\"Step-by-step guide for integrating Prisma ORM and Prisma Postgres in an Astro.js project\",\"icon\":\"$undefined\",\"url\":\"/ai/prompts/astro\",\"$ref\":{\"file\":\"ai/prompts/astro.mdx\"}},{\"$id\":\"ai/prompts/turborepo.mdx\",\"type\":\"page\",\"name\":\"Turborepo + Prisma\",\"description\":\"Step-by-step guide for integrating Prisma ORM and Prisma Postgres in a Turborepo monorepo\",\"icon\":\"$undefined\",\"url\":\"/ai/prompts/turborepo\",\"$ref\":{\"file\":\"ai/prompts/turborepo.mdx\"}},{\"$id\":\"ai/prompts/prisma-7.mdx\",\"type\":\"page\",\"name\":\"Migrate to Prisma v7\",\"description\":\"Step-by-step guide for migration your app to use the version 7 of Prisma ORM\",\"icon\":\"$undefined\",\"url\":\"/ai/prompts/prisma-7\",\"$ref\":{\"file\":\"ai/prompts/prisma-7.mdx\"}},{\"$id\":\"_34\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Tutorials\"},{\"$id\":\"ai/tutorials/linktree-clone.mdx\",\"type\":\"page\",\"name\":\"Linktree Clone SaaS\",\"description\":\"A complete vibe coding tutorial: build a full Linktree clone SaaS application from scratch using Next.js, Prisma ORM, Prisma Postgres, and Clerk authentication with AI assistance\",\"icon\":\"$undefined\",\"url\":\"/ai/tutorials/linktree-clone\",\"$ref\":{\"file\":\"ai/tutorials/linktree-clone.mdx\"}},{\"$id\":\"ai/tutorials/typefully-clone.mdx\",\"type\":\"page\",\"name\":\"Build a Tweet SaaS with Next.js, Prisma Postgres, and Ollama\",\"description\":\"A complete vibe coding tutorial: build a tweet polishing app from scratch using Next.js, Prisma ORM, Prisma Postgres, UploadThing, and a local LLM with Ollama.\",\"icon\":\"$undefined\",\"url\":\"/ai/tutorials/typefully-clone\",\"$ref\":{\"file\":\"ai/tutorials/typefully-clone.mdx\"}}],\"$id\":\"ai\",\"$ref\":{\"metaFile\":\"ai/meta.json\"},\"icon\":\"$Ld\"},{\"type\":\"folder\",\"name\":\"Management API\",\"root\":true,\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"_35\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Introduction\"},{\"$id\":\"management-api/index.mdx\",\"type\":\"page\",\"name\":\"Management API\",\"description\":\"Programmatically manage your Prisma Postgres databases, projects, and workspaces with the Management API\",\"icon\":\"$undefined\",\"url\":\"/management-api\",\"$ref\":{\"file\":\"management-api/index.mdx\"}},{\"$id\":\"management-api/getting-started.mdx\",\"type\":\"page\",\"name\":\"Getting Started\",\"description\":\"Get started with the Prisma Management API by creating your first project and database\",\"icon\":\"$undefined\",\"url\":\"/management-api/getting-started\",\"$ref\":{\"file\":\"management-api/getting-started.mdx\"}},{\"$id\":\"management-api/partner-integration.mdx\",\"type\":\"page\",\"name\":\"Partner Integration\",\"description\":\"Build partner integrations that provision and transfer Prisma Postgres databases to users\",\"icon\":\"$undefined\",\"url\":\"/management-api/partner-integration\",\"$ref\":{\"file\":\"management-api/partner-integration.mdx\"}},{\"$id\":\"_36\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Authentication \u0026 Tools\"},{\"$id\":\"management-api/api-clients.mdx\",\"type\":\"page\",\"name\":\"Using API Clients\",\"description\":\"Use the Management API with popular API clients like Postman, Insomnia, and Yaak\",\"icon\":\"$undefined\",\"url\":\"/management-api/api-clients\",\"$ref\":{\"file\":\"management-api/api-clients.mdx\"}},{\"$id\":\"management-api/authentication.mdx\",\"type\":\"page\",\"name\":\"Authentication\",\"description\":\"Learn how to authenticate with the Prisma Management API using service tokens or OAuth 2.0\",\"icon\":\"$undefined\",\"url\":\"/management-api/authentication\",\"$ref\":{\"file\":\"management-api/authentication.mdx\"}},{\"$id\":\"management-api/sdk.mdx\",\"type\":\"page\",\"name\":\"SDK\",\"description\":\"A TypeScript SDK for the Prisma Data Platform Management API. Use the simple client for direct API access, or the full SDK with built-in OAuth authentication and automatic token refresh\",\"icon\":\"$undefined\",\"url\":\"/management-api/sdk\",\"$ref\":{\"file\":\"management-api/sdk.mdx\"}},{\"$id\":\"_37\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Endpoints\"},{\"type\":\"folder\",\"name\":\"Databases\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"management-api/endpoints/databases/delete-databases-by-database-id.mdx\",\"type\":\"page\",\"name\":\"$Le\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/databases/delete-databases-by-database-id\",\"$ref\":{\"file\":\"management-api/endpoints/databases/delete-databases-by-database-id.mdx\"}},{\"$id\":\"management-api/endpoints/databases/get-databases-by-database-id.mdx\",\"type\":\"page\",\"name\":\"$Lf\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/databases/get-databases-by-database-id\",\"$ref\":{\"file\":\"management-api/endpoints/databases/get-databases-by-database-id.mdx\"}},{\"$id\":\"management-api/endpoints/databases/get-databases.mdx\",\"type\":\"page\",\"name\":\"$L10\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/databases/get-databases\",\"$ref\":{\"file\":\"management-api/endpoints/databases/get-databases.mdx\"}},{\"$id\":\"management-api/endpoints/databases/get-projects-by-project-id-databases.mdx\",\"type\":\"page\",\"name\":\"$L11\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/databases/get-projects-by-project-id-databases\",\"$ref\":{\"file\":\"management-api/endpoints/databases/get-projects-by-project-id-databases.mdx\"}},{\"$id\":\"management-api/endpoints/databases/patch-databases-by-database-id.mdx\",\"type\":\"page\",\"name\":\"$L12\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/databases/patch-databases-by-database-id\",\"$ref\":{\"file\":\"management-api/endpoints/databases/patch-databases-by-database-id.mdx\"}},{\"$id\":\"management-api/endpoints/databases/post-databases-by-target-database-id-restore.mdx\",\"type\":\"page\",\"name\":\"$L13\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/databases/post-databases-by-target-database-id-restore\",\"$ref\":{\"file\":\"management-api/endpoints/databases/post-databases-by-target-database-id-restore.mdx\"}},{\"$id\":\"management-api/endpoints/databases/post-databases.mdx\",\"type\":\"page\",\"name\":\"$L14\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/databases/post-databases\",\"$ref\":{\"file\":\"management-api/endpoints/databases/post-databases.mdx\"}},{\"$id\":\"management-api/endpoints/databases/post-projects-by-project-id-databases.mdx\",\"type\":\"page\",\"name\":\"$L15\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/databases/post-projects-by-project-id-databases\",\"$ref\":{\"file\":\"management-api/endpoints/databases/post-projects-by-project-id-databases.mdx\"}}],\"$id\":\"management-api/endpoints/databases\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Database backups\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"management-api/endpoints/database-backups/get-databases-by-database-id-backups.mdx\",\"type\":\"page\",\"name\":\"$L16\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/database-backups/get-databases-by-database-id-backups\",\"$ref\":{\"file\":\"management-api/endpoints/database-backups/get-databases-by-database-id-backups.mdx\"}}],\"$id\":\"management-api/endpoints/database-backups\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Database usage\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"management-api/endpoints/database-usage/get-databases-by-database-id-usage.mdx\",\"type\":\"page\",\"name\":\"$L17\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/database-usage/get-databases-by-database-id-usage\",\"$ref\":{\"file\":\"management-api/endpoints/database-usage/get-databases-by-database-id-usage.mdx\"}}],\"$id\":\"management-api/endpoints/database-usage\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Databases connections\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"management-api/endpoints/databases-connections/get-databases-by-database-id-connections.mdx\",\"type\":\"page\",\"name\":\"$L18\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/databases-connections/get-databases-by-database-id-connections\",\"$ref\":{\"file\":\"management-api/endpoints/databases-connections/get-databases-by-database-id-connections.mdx\"}},{\"$id\":\"management-api/endpoints/databases-connections/post-databases-by-database-id-connections.mdx\",\"type\":\"page\",\"name\":\"$L19\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/databases-connections/post-databases-by-database-id-connections\",\"$ref\":{\"file\":\"management-api/endpoints/databases-connections/post-databases-by-database-id-connections.mdx\"}}],\"$id\":\"management-api/endpoints/databases-connections\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Integrations\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"management-api/endpoints/integrations/delete-integrations-by-id.mdx\",\"type\":\"page\",\"name\":\"$L1a\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/integrations/delete-integrations-by-id\",\"$ref\":{\"file\":\"management-api/endpoints/integrations/delete-integrations-by-id.mdx\"}},{\"$id\":\"management-api/endpoints/integrations/delete-workspaces-by-workspace-id-integrations-by-client-id.mdx\",\"type\":\"page\",\"name\":\"$L1b\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/integrations/delete-workspaces-by-workspace-id-integrations-by-client-id\",\"$ref\":{\"file\":\"management-api/endpoints/integrations/delete-workspaces-by-workspace-id-integrations-by-client-id.mdx\"}},{\"$id\":\"management-api/endpoints/integrations/get-integrations-by-id.mdx\",\"type\":\"page\",\"name\":\"$L1c\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/integrations/get-integrations-by-id\",\"$ref\":{\"file\":\"management-api/endpoints/integrations/get-integrations-by-id.mdx\"}},{\"$id\":\"management-api/endpoints/integrations/get-integrations.mdx\",\"type\":\"page\",\"name\":\"$L1d\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/integrations/get-integrations\",\"$ref\":{\"file\":\"management-api/endpoints/integrations/get-integrations.mdx\"}},{\"$id\":\"management-api/endpoints/integrations/get-workspaces-by-workspace-id-integrations.mdx\",\"type\":\"page\",\"name\":\"$L1e\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/integrations/get-workspaces-by-workspace-id-integrations\",\"$ref\":{\"file\":\"management-api/endpoints/integrations/get-workspaces-by-workspace-id-integrations.mdx\"}}],\"$id\":\"management-api/endpoints/integrations\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Projects\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"management-api/endpoints/projects/delete-projects-by-id.mdx\",\"type\":\"page\",\"name\":\"$L1f\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/projects/delete-projects-by-id\",\"$ref\":{\"file\":\"management-api/endpoints/projects/delete-projects-by-id.mdx\"}},{\"$id\":\"management-api/endpoints/projects/get-projects-by-id.mdx\",\"type\":\"page\",\"name\":\"$L20\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/projects/get-projects-by-id\",\"$ref\":{\"file\":\"management-api/endpoints/projects/get-projects-by-id.mdx\"}},{\"$id\":\"management-api/endpoints/projects/get-projects.mdx\",\"type\":\"page\",\"name\":\"$L21\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/projects/get-projects\",\"$ref\":{\"file\":\"management-api/endpoints/projects/get-projects.mdx\"}},{\"$id\":\"management-api/endpoints/projects/patch-projects-by-id.mdx\",\"type\":\"page\",\"name\":\"$L22\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/projects/patch-projects-by-id\",\"$ref\":{\"file\":\"management-api/endpoints/projects/patch-projects-by-id.mdx\"}},{\"$id\":\"management-api/endpoints/projects/post-projects-by-id-transfer.mdx\",\"type\":\"page\",\"name\":\"$L23\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/projects/post-projects-by-id-transfer\",\"$ref\":{\"file\":\"management-api/endpoints/projects/post-projects-by-id-transfer.mdx\"}},{\"$id\":\"management-api/endpoints/projects/post-projects.mdx\",\"type\":\"page\",\"name\":\"$L24\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/projects/post-projects\",\"$ref\":{\"file\":\"management-api/endpoints/projects/post-projects.mdx\"}}],\"$id\":\"management-api/endpoints/projects\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Workspaces\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"management-api/endpoints/workspaces/get-workspaces-by-id.mdx\",\"type\":\"page\",\"name\":\"$L25\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/workspaces/get-workspaces-by-id\",\"$ref\":{\"file\":\"management-api/endpoints/workspaces/get-workspaces-by-id.mdx\"}},{\"$id\":\"management-api/endpoints/workspaces/get-workspaces.mdx\",\"type\":\"page\",\"name\":\"$L26\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/workspaces/get-workspaces\",\"$ref\":{\"file\":\"management-api/endpoints/workspaces/get-workspaces.mdx\"}}],\"$id\":\"management-api/endpoints/workspaces\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Misc\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"management-api/endpoints/misc/get-regions-accelerate.mdx\",\"type\":\"page\",\"name\":\"$L27\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/misc/get-regions-accelerate\",\"$ref\":{\"file\":\"management-api/endpoints/misc/get-regions-accelerate.mdx\"}},{\"$id\":\"management-api/endpoints/misc/get-regions-postgres.mdx\",\"type\":\"page\",\"name\":\"$L28\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/misc/get-regions-postgres\",\"$ref\":{\"file\":\"management-api/endpoints/misc/get-regions-postgres.mdx\"}}],\"$id\":\"management-api/endpoints/misc\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"}],\"$id\":\"management-api\",\"$ref\":{\"metaFile\":\"management-api/meta.json\"},\"icon\":\"$L29\"}],\"fallback\":{\"$id\":\"fallback:root\",\"name\":\"Docs\",\"children\":[{\"type\":\"folder\",\"name\":\"Ai\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"type\":\"folder\",\"name\":\"Prompts\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:ai/prompts/nuxt.mdx\",\"type\":\"page\",\"name\":\"Nuxt + Prisma\",\"description\":\"Step-by-step guide for integrating Prisma ORM and Prisma Postgres in a Nuxt project\",\"icon\":\"$undefined\",\"url\":\"/ai/prompts/nuxt\",\"$ref\":{\"file\":\"ai/prompts/nuxt.mdx\"}}],\"$id\":\"fallback:ai/prompts\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"}],\"$id\":\"fallback:ai\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Cli\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"type\":\"folder\",\"name\":\"Console\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:cli/console/platform.mdx\",\"type\":\"page\",\"name\":\"platform\",\"description\":\"Manage Prisma Console workspaces, projects, environments, and connection strings\",\"icon\":\"$undefined\",\"url\":\"/cli/console/platform\",\"$ref\":{\"file\":\"cli/console/platform.mdx\"}}],\"$id\":\"fallback:cli/console\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"}],\"$id\":\"fallback:cli\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Console\",\"root\":true,\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:_0\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Introduction\"},{\"$id\":\"fallback:console/index.mdx\",\"type\":\"page\",\"name\":\"Console\",\"description\":\"Learn how to use the Console to manage and integrate Prisma products into your application.\",\"icon\":\"$undefined\",\"url\":\"/console\",\"$ref\":{\"file\":\"console/index.mdx\"}},{\"$id\":\"fallback:console/getting-started.mdx\",\"type\":\"page\",\"name\":\"Getting Started\",\"description\":\"Quick start guide for setting up and using the Prisma Console\",\"icon\":\"$undefined\",\"url\":\"/console/getting-started\",\"$ref\":{\"file\":\"console/getting-started.mdx\"}},{\"$id\":\"fallback:console/concepts.mdx\",\"type\":\"page\",\"name\":\"Concepts\",\"description\":\"Understand the core concepts of the Prisma Console: user accounts, workspaces, projects, and resources\",\"icon\":\"$undefined\",\"url\":\"/console/concepts\",\"$ref\":{\"file\":\"console/concepts.mdx\"}},{\"$id\":\"fallback:_1\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Features\"},{\"$id\":\"fallback:console/features/metrics.mdx\",\"type\":\"page\",\"name\":\"Database Metrics\",\"description\":\"Monitor your database performance with Console metrics\",\"icon\":\"$undefined\",\"url\":\"/console/features/metrics\",\"$ref\":{\"file\":\"console/features/metrics.mdx\"}},{\"$id\":\"fallback:console/features/optimize.mdx\",\"type\":\"page\",\"name\":\"Optimize\",\"description\":\"Access the Optimize dashboard and generate API keys for query performance monitoring\",\"icon\":\"$undefined\",\"url\":\"/console/features/optimize\",\"$ref\":{\"file\":\"console/features/optimize.mdx\"}},{\"$id\":\"fallback:_2\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"More\"},{\"$id\":\"fallback:console/more/feature-maturity.mdx\",\"type\":\"page\",\"name\":\"Feature Maturity\",\"description\":\"Understand Early Access and Preview feature stages in the Console\",\"icon\":\"$undefined\",\"url\":\"/console/more/feature-maturity\",\"$ref\":{\"file\":\"console/more/feature-maturity.mdx\"}},{\"$id\":\"fallback:console/more/support.mdx\",\"type\":\"page\",\"name\":\"Support\",\"description\":\"Find the right support for any Console question\",\"icon\":\"$undefined\",\"url\":\"/console/more/support\",\"$ref\":{\"file\":\"console/more/support.mdx\"}}],\"$id\":\"fallback:console\",\"$ref\":{\"metaFile\":\"console/meta.json\"},\"icon\":\"$L2a\"},{\"type\":\"folder\",\"name\":\"Management api\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"type\":\"folder\",\"name\":\"Endpoints\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"type\":\"folder\",\"name\":\"[experimental]\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:management-api/endpoints/[experimental]/delete-compute-services-by-compute-service-id.mdx\",\"type\":\"page\",\"name\":\"$L2b\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/delete-compute-services-by-compute-service-id\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/delete-compute-services-by-compute-service-id.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/delete-compute-services-versions-by-version-id.mdx\",\"type\":\"page\",\"name\":\"$L2c\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/delete-compute-services-versions-by-version-id\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/delete-compute-services-versions-by-version-id.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/delete-versions-by-version-id.mdx\",\"type\":\"page\",\"name\":\"$L2d\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/delete-versions-by-version-id\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/delete-versions-by-version-id.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/get-compute-services-by-compute-service-id-versions.mdx\",\"type\":\"page\",\"name\":\"$L2e\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/get-compute-services-by-compute-service-id-versions\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/get-compute-services-by-compute-service-id-versions.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/get-compute-services-by-compute-service-id.mdx\",\"type\":\"page\",\"name\":\"$L2f\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/get-compute-services-by-compute-service-id\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/get-compute-services-by-compute-service-id.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/get-compute-services-versions-by-version-id.mdx\",\"type\":\"page\",\"name\":\"$L30\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/get-compute-services-versions-by-version-id\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/get-compute-services-versions-by-version-id.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/get-compute-services.mdx\",\"type\":\"page\",\"name\":\"$L31\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/get-compute-services\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/get-compute-services.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/get-projects-by-project-id-compute-services.mdx\",\"type\":\"page\",\"name\":\"$L32\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/get-projects-by-project-id-compute-services\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/get-projects-by-project-id-compute-services.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/get-versions-by-version-id.mdx\",\"type\":\"page\",\"name\":\"$L33\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/get-versions-by-version-id\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/get-versions-by-version-id.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/get-versions.mdx\",\"type\":\"page\",\"name\":\"$L34\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/get-versions\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/get-versions.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/patch-compute-services-by-compute-service-id.mdx\",\"type\":\"page\",\"name\":\"$L35\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/patch-compute-services-by-compute-service-id\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/patch-compute-services-by-compute-service-id.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/post-compute-services-by-compute-service-id-versions.mdx\",\"type\":\"page\",\"name\":\"$L36\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/post-compute-services-by-compute-service-id-versions\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/post-compute-services-by-compute-service-id-versions.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/post-compute-services-versions-by-version-id-start.mdx\",\"type\":\"page\",\"name\":\"$L37\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/post-compute-services-versions-by-version-id-start\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/post-compute-services-versions-by-version-id-start.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/post-compute-services-versions-by-version-id-stop.mdx\",\"type\":\"page\",\"name\":\"$L38\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/post-compute-services-versions-by-version-id-stop\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/post-compute-services-versions-by-version-id-stop.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/post-compute-services.mdx\",\"type\":\"page\",\"name\":\"$L39\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/post-compute-services\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/post-compute-services.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/post-projects-by-project-id-compute-services.mdx\",\"type\":\"page\",\"name\":\"$L3a\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/post-projects-by-project-id-compute-services\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/post-projects-by-project-id-compute-services.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/post-versions-by-version-id-start.mdx\",\"type\":\"page\",\"name\":\"$L3b\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/post-versions-by-version-id-start\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/post-versions-by-version-id-start.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/post-versions-by-version-id-stop.mdx\",\"type\":\"page\",\"name\":\"$L3c\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/post-versions-by-version-id-stop\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/post-versions-by-version-id-stop.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/[experimental]/post-versions.mdx\",\"type\":\"page\",\"name\":\"$L3d\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/%5Bexperimental%5D/post-versions\",\"$ref\":{\"file\":\"management-api/endpoints/[experimental]/post-versions.mdx\"}}],\"$id\":\"fallback:management-api/endpoints/[experimental]\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Connections\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:management-api/endpoints/connections/delete-connections-by-id.mdx\",\"type\":\"page\",\"name\":\"$L3e\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/connections/delete-connections-by-id\",\"$ref\":{\"file\":\"management-api/endpoints/connections/delete-connections-by-id.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/connections/get-connections-by-id.mdx\",\"type\":\"page\",\"name\":\"$L3f\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/connections/get-connections-by-id\",\"$ref\":{\"file\":\"management-api/endpoints/connections/get-connections-by-id.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/connections/get-connections.mdx\",\"type\":\"page\",\"name\":\"$L40\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/connections/get-connections\",\"$ref\":{\"file\":\"management-api/endpoints/connections/get-connections.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/connections/post-connections-by-id-rotate.mdx\",\"type\":\"page\",\"name\":\"$L41\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/connections/post-connections-by-id-rotate\",\"$ref\":{\"file\":\"management-api/endpoints/connections/post-connections-by-id-rotate.mdx\"}},{\"$id\":\"fallback:management-api/endpoints/connections/post-connections.mdx\",\"type\":\"page\",\"name\":\"$L42\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/connections/post-connections\",\"$ref\":{\"file\":\"management-api/endpoints/connections/post-connections.mdx\"}}],\"$id\":\"fallback:management-api/endpoints/connections\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Regions\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:management-api/endpoints/regions/get-regions.mdx\",\"type\":\"page\",\"name\":\"$L43\",\"description\":\"$undefined\",\"icon\":\"$undefined\",\"url\":\"/management-api/endpoints/regions/get-regions\",\"$ref\":{\"file\":\"management-api/endpoints/regions/get-regions.mdx\"}}],\"$id\":\"fallback:management-api/endpoints/regions\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"}],\"$id\":\"fallback:management-api/endpoints\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"}],\"$id\":\"fallback:management-api\",\"$ref\":\"$undefined\",\"icon\":\"$undefined\"}]}},\"children\":\"$L44\"}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],\"$L45\",\"$L46\"]}]]}]]}],{\"children\":[\"$L47\",{\"children\":[\"$L48\",{\"children\":[\"$L49\",{\"children\":[\"$L4a\",{},null,false,false]},null,false,false]},null,false,false]},null,false,false]},null,false,false],\"$L4b\",false]],\"m\":\"$undefined\",\"G\":[\"$4c\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"4d:I[476007,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"LayoutContextProvider\"]\n"])</script><script>self.__next_f.push([1,"4e:I[402621,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"Sidebar\"]\n"])</script><script>self.__next_f.push([1,"4f:I[476007,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SidebarEnabledFromPageProvider\"]\n"])</script><script>self.__next_f.push([1,"50:I[476007,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"LayoutBody\"]\n"])</script><script>self.__next_f.push([1,"51:I[476007,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SidebarEnabledGate\"]\n"])</script><script>self.__next_f.push([1,"52:I[402621,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SidebarContent\"]\n"])</script><script>self.__next_f.push([1,"53:I[339849,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SidebarTabsDropdown\"]\n"])</script><script>self.__next_f.push([1,"54:I[882493,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"VersionSwitcher\"]\n"])</script><script>self.__next_f.push([1,"55:I[402621,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SidebarViewport\"]\n"])</script><script>self.__next_f.push([1,"56:I[402621,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SidebarPageTree\"]\n"])</script><script>self.__next_f.push([1,"57:I[430974,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"LinkItem\"]\n"])</script><script>self.__next_f.push([1,"5e:I[402621,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SidebarDrawer\"]\n"])</script><script>self.__next_f.push([1,"5f:I[402621,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SidebarTrigger\"]\n"])</script><script>self.__next_f.push([1,"67:I[733142,[\"/docs-static/_next/static/chunks/d6c5d1f5b52e58a1.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"OutletBoundary\"]\n68:\"$Sreact.suspense\"\n6a:I[733142,[\"/docs-static/_next/static/chunks/d6c5d1f5b52e58a1.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"ViewportBoundary\"]\n6c:I[733142,[\"/docs-static/_next/static/chunks/d6c5d1f5b52e58a1.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"MetadataBoundary\"]\n7:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-database\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"ellipse\",\"msslwz\",{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"}],[\"$\",\"path\",\"1wlel7\",{\"d\":\"M3 5V19A9 3 0 0 0 21 19V5\"}],[\"$\",\"path\",\"mv7ke4\",{\"d\":\"M3 12A9 3 0 0 0 21 12\"}],\"$undefined\"]}]\n8:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-triangle-dashed\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"pltmmw\",{\"d\":\"M10.17 4.193a2 2 0 0 1 3.666.013\"}],[\"$\",\"path\",\"v4qezv\",{\"d\":\"M14 21h2\"}],[\"$\",\"path\",\"10m0iw\",{\"d\":\"m15.874 7.743 1 1.732\"}],[\"$\",\"path\",\"zadnam\",{\"d\":\"m18.849 12.952 1 1.732\"}],[\"$\",\"path\",\"fvwuk4\",{\"d\":\"M21.824 18.18a2 2 0 0 1-1.835 2.824\"}],[\"$\",\"path\",\"1e1kah\",{\"d\":\"M4.024 21a2 2 0 0 1-1.839-2.839\"}],[\"$\",\"path\",\"1u4ldi\",{\"d\":\"m5.136 12.952-1 1.732\"}],[\"$\",\"path\",\"i9zjee\",{\"d\":\"M8 21h2\"}],[\"$\",\"path\",\"1zzo4u\",{\"d\":\"m8.102 7.743-1 1.732\"}],\"$undefined\"]}]\n9:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-terminal\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"baeox8\",{\"d\":\"M12 19h8\"}],[\"$\",\"path\",\"1yngyt\",{\"d\":\"m4 17 6-6-6-6\"}],\"$undefined\"]}]\na:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-notebook-tabs\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"aawbzj\",{\"d\":\"M2 6h4\"}],[\"$\",\"path\",\"l0bgd4\",{\"d\":\"M2 10h4\"}],[\"$\",\"path\",\"1gsvsf\",{\"d\":\"M2 14h4\"}],[\"$\",\"path\",\"1bu2t1\",{\"d\":\"M2 18h4\"}],[\"$\",\"rect\",\"1nb95v\",{\"width\":\"16\",\"height\":\"20\",\"x\":\"4\",\"y\":\"2\",\"rx\":\"2\"}],[\"$\",\"path\",\"dcj49h\",{\"d\":\"M15 2v20\"}],[\"$\",\"path\",\"1xj5lc\",{\"d\":\"M15 7h5\"}],[\"$\",\"path\",\"w5shd9\",{\"d\":\"M15 12h5\"}],[\"$\",\"path\",\"1qaofu\",{\"d\":\"M15 17h5\"}],\"$undefined\"]}]\nb:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-palette\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"e79jfc\",{\"d\":\"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z\"}],[\"$\",\"circle\",\"1okk4w\",{\"cx\":\"13.5\",\"cy\":\"6.5\",\"r\":\".5\",\"fill\":\"currentColor\"}],[\"$\",\"circle\",\"f64h9f\",{\"cx\":\"17.5\",\"cy\":\"10.5\",\"r\":\".5\",\"fill\":\"currentColor\"}],[\"$\",\"circle\",\"qy21gx\",{\"cx\":\"6.5\",\"cy\":\"12.5\",\"r\":\".5\",\"fill\":\"currentColor\"}],[\"$\",\"circle\",\"fotxhn\",{\"cx\":\"8.5\",\"cy\":\"7.5\",\"r\":\".5\",\"fill\":\"currentColor\"}],\"$undefined\"]}]\nc:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-zap\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1xq2db\",{\"d\":\"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z\"}],\"$undefined\"]}]\nd:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"w"])</script><script>self.__next_f.push([1,"idth\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-bot\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"hb8ula\",{\"d\":\"M12 8V4H8\"}],[\"$\",\"rect\",\"enze0r\",{\"width\":\"16\",\"height\":\"12\",\"x\":\"4\",\"y\":\"8\",\"rx\":\"2\"}],[\"$\",\"path\",\"vft8re\",{\"d\":\"M2 14h2\"}],[\"$\",\"path\",\"4cs60a\",{\"d\":\"M20 14h2\"}],[\"$\",\"path\",\"1xurst\",{\"d\":\"M15 13v2\"}],[\"$\",\"path\",\"rq6x2g\",{\"d\":\"M9 13v2\"}],\"$undefined\"]}]\ne:[\"Delete database\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-red-600 dark:text-red-400 ms-auto text-xs text-nowrap\",\"children\":\"DELETE\"}]]\nf:[\"Get database\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n10:[\"List databases\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n11:[\"Get list of databases\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n12:[\"Update database\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-orange-600 dark:text-orange-400 ms-auto text-xs text-nowrap\",\"children\":\"PATCH\"}]]\n13:[\"Restore database\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n14:[\"Create database\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n15:[\"Create database\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n16:[\"Get list of backups\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n17:[\"Get database usage metrics\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n18:[\"Get list of database connections\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n19:[\"Create database connection string\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n1a:[\"Delete integration\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-red-600 dark:text-red-400 ms-auto text-xs text-nowrap\",\"children\":\"DELETE\"}]]\n1b:[\"Revoke integration tokens\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-red-600 dark:text-red-400 ms-auto text-xs text-nowrap\",\"children\":\"DELETE\"}]]\n1c:[\"Get integration by ID\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n1d:[\"Get list of integrations\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n1e:[\"Get list of integrations\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n1f:[\"Delete project\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-red-600 dark:text-red-400 ms-auto text-xs text-nowrap\",\"children\":\"DELETE\"}]]\n20:[\"Get project\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n21:[\"Get list of projects\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n22:[\"Update project\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-orange-600 dark:text-orange-400 ms-auto text-xs text-nowrap\",\"children\":\"PATCH\"}]]\n23:[\"Transfer project\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue"])</script><script>self.__next_f.push([1,"-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n24:[\"Create project with a postgres database\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n25:[\"Get workspace\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n26:[\"Get list of workspaces\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n27:[\"Get Prisma Accelerate regions\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n28:[\"Get Prisma Postgres regions\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n29:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-code\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"eg8j8\",{\"d\":\"m16 18 6-6-6-6\"}],[\"$\",\"path\",\"ppft3o\",{\"d\":\"m8 6-6 6 6 6\"}],\"$undefined\"]}]\n2a:[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-table2 lucide-table-2\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"gugj83\",{\"d\":\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18\"}],\"$undefined\"]}]\n2b:[\"Delete compute service\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-red-600 dark:text-red-400 ms-auto text-xs text-nowrap\",\"children\":\"DELETE\"}]]\n2c:[\"Delete compute version\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-red-600 dark:text-red-400 ms-auto text-xs text-nowrap\",\"children\":\"DELETE\"}]]\n2d:[\"Delete compute version\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-red-600 dark:text-red-400 ms-auto text-xs text-nowrap\",\"children\":\"DELETE\"}]]\n2e:[\"List compute versions\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n2f:[\"Get compute service\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n30:[\"Get compute version\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n31:[\"List compute services\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n32:[\"List compute services for a project\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n33:[\"Get compute version\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n34:[\"List compute versions\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n35:[\"Update compute service\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-orange-600 dark:text-orange-400 ms-auto text-xs text-nowrap\",\"children\":\"PATCH\"}]]\n36:[\"Create compute version\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n37:[\"Start compute version\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n38:[\"Stop compute version\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blu"])</script><script>self.__next_f.push([1,"e-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n39:[\"Create compute service\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n3a:[\"Create compute service\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n3b:[\"Start compute version\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n3c:[\"Stop compute version\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n3d:[\"Create compute version\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n3e:[\"Delete connection\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-red-600 dark:text-red-400 ms-auto text-xs text-nowrap\",\"children\":\"DELETE\"}]]\n3f:[\"Get connection\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n40:[\"List connections\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n41:[\"Rotate connection credentials\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n42:[\"Create connection\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-blue-600 dark:text-blue-400 ms-auto text-xs text-nowrap\",\"children\":\"POST\"}]]\n43:[\"Get all regions\",\" \",[\"$\",\"span\",null,{\"className\":\"font-mono font-medium text-green-600 dark:text-green-400 ms-auto text-xs text-nowrap\",\"children\":\"GET\"}]]\n58:T670,"])</script><script>self.__next_f.push([1,"M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z"])</script><script>self.__next_f.push([1,"44:[\"$\",\"$L4d\",null,{\"navTransparentMode\":\"none\",\"children\":[\"$\",\"$L4e\",null,{\"defaultOpenLevel\":\"$undefined\",\"prefetch\":\"$undefined\",\"children\":[\"$\",\"$L4f\",null,{\"layoutEnabled\":true,\"children\":[\"$\",\"$L50\",null,{\"children\":[[\"$\",\"$L51\",null,{\"children\":[[\"$\",\"$L52\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-3 p-4 pb-2 empty:hidden\",\"children\":[[\"$\",\"$L53\",null,{\"links\":[{\"text\":\"Getting Started\",\"url\":\"/\",\"active\":\"nested-url\",\"activePaths\":[\"/\",\"/prisma-orm\",\"/prisma-postgres\"]},{\"text\":\"ORM\",\"url\":\"/orm\",\"active\":\"nested-url\"},{\"text\":\"Postgres\",\"url\":\"/postgres\",\"active\":\"nested-url\"},{\"text\":\"CLI\",\"url\":\"/cli\",\"active\":\"nested-url\"},{\"text\":\"Guides\",\"url\":\"/guides\",\"active\":\"nested-url\"},{\"text\":\"More\",\"type\":\"menu\",\"items\":[{\"text\":\"Management API\",\"url\":\"/management-api\",\"active\":\"nested-url\"},{\"text\":\"Studio\",\"url\":\"/studio\",\"active\":\"nested-url\"},{\"text\":\"AI\",\"url\":\"/ai\",\"active\":\"nested-url\"},{\"text\":\"Query Insights\",\"url\":\"/query-insights\",\"active\":\"nested-url\"},{\"text\":\"Accelerate\",\"url\":\"/accelerate\",\"active\":\"nested-url\"},{\"text\":\"Console\",\"url\":\"/console\",\"active\":\"nested-url\"}]},{\"type\":\"custom\",\"children\":[\"$\",\"$L54\",null,{\"currentVersion\":\"v7\"}]}],\"className\":\"lg:hidden\"}],\"$undefined\"]}],[\"$\",\"$L55\",null,{\"children\":[\"$\",\"$L56\",null,{}]}],[\"$\",\"div\",null,{\"className\":\"hidden flex-row text-fd-muted-foreground items-center border-t p-4 pt-2 max-lg:flex\",\"children\":[[[\"$\",\"$L57\",\"0\",{\"item\":{\"type\":\"icon\",\"label\":\"Join Discord\",\"icon\":[\"$\",\"svg\",null,{\"viewBox\":\"0 -28.5 256 256\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"preserveAspectRatio\":\"xMidYMid\",\"className\":\"size-5\",\"children\":[\"$\",\"path\",null,{\"d\":\"$58\",\"fill\":\"currentColor\",\"fillRule\":\"nonzero\"}]}],\"text\":\"Discord\",\"url\":\"https://pris.ly/discord?utm_source=docs\u0026utm_medium=navbar\"},\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 lg:hidden\",\"aria-label\":\"Join Discord\",\"children\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item:icon\"}],[\"$\",\"$L57\",\"1\",{\"item\":{\"type\":\"icon\",\"url\":\"https://pris.ly/github?utm_source=docs\u0026utm_medium=navbar\",\"text\":\"Github\",\"label\":\"GitHub\",\"icon\":\"$L59\",\"external\":true},\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 lg:hidden\",\"aria-label\":\"GitHub\",\"children\":\"$59\"}]],\"$undefined\"]}]]}],\"$L5a\"]}],\"$L5b\",[\"$L5c\",\"$L5d\"]]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"45:[\"$\",\"$L2\",null,{\"async\":true,\"src\":\"https://cdn.tolt.io/tolt.js\",\"data-tolt\":\"fda67739-7ed0-42d2-b716-6da0edbec191\"}]\n46:[\"$\",\"$L2\",null,{\"async\":true,\"src\":\"https://cdn-cookieyes.com/client_data/96980f76df67ad5235fc3f0d/script.js\",\"id\":\"cookieyes\"}]\n"])</script><script>self.__next_f.push([1,"47:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L6\",null,{\"tree\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:props:tree\",\"children\":[\"$\",\"$L4d\",null,{\"navTransparentMode\":\"none\",\"children\":[\"$\",\"$L4e\",null,{\"defaultOpenLevel\":\"$undefined\",\"prefetch\":\"$undefined\",\"children\":[\"$\",\"$L4f\",null,{\"layoutEnabled\":true,\"children\":[\"$\",\"$L50\",null,{\"children\":[[\"$\",\"$L51\",null,{\"children\":[[\"$\",\"$L52\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-3 p-4 pb-2 empty:hidden\",\"children\":[[\"$\",\"$L53\",null,{\"links\":[\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:0\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:1\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:2\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:3\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:4\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:5\",{\"type\":\"custom\",\"children\":[\"$\",\"$L54\",null,{\"currentVersion\":\"v7\"}]}],\"className\":\"lg:hidden\"}],\"$undefined\"]}],[\"$\",\"$L55\",null,{\"children\":[\"$\",\"$L56\",null,{}]}],[\"$\",\"div\",null,{\"className\":\"hidden flex-row text-fd-muted-foreground items-center border-t p-4 pt-2 max-lg:flex\",\"children\":[[[\"$\",\"$L57\",\"0\",{\"item\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 lg:hidden\",\"aria-label\":\"Join Discord\",\"children\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item:icon\"}],[\"$\",\"$L57\",\"1\",{\"item\":{\"type\":\"icon\",\"url\":\"https://pris.ly/github?utm_source=docs\u0026utm_medium=navbar\",\"text\":\"Github\",\"label\":\"GitHub\",\"icon\":[\"$\",\"svg\",null,{\"role\":\"img\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}]}],\"external\":true},\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 lg:hidden\",\"aria-label\":\"GitHub\",\"children\":\"$47:props:children:1:props:notFound:0:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:1:props:item:icon\"}]],\"$undefined\"]}]]}],[\"$\",\"$L5e\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-3 p-4 pb-2 empty:hidden\",\"children\":[[[\"$\",\"$L5f\",null,{\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 ms-auto text-fd-muted-foreground\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-x\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1bl5f8\",{\"d\":\"M18 6 6 18\"}],[\"$\",\"path\",\"d8bk6v\",{\"d\":\"m6 6 12 12\"}],\"$undefined\"]}]}],[\"$\",\"$L53\",null,{\"links\":[\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:0\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:1\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:2\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:3\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:4\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:5\",\"$47:props:children:1:props:notFound:0:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:6\"]}]],\"$undefined\"]}],\"$47:props:children:1:props:notFound:0:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:1\",[\"$\",\"div\",null,{\"className\":\"text-fd-muted-foreground border-t p-4 pt-2 flex-row items-center justify-end flex max-lg:flex\",\"children\":[[[[\"$\",\"$L57\",\"0\",{\"item\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 text-fd-muted-foreground lg:hidden\",\"aria-label\":\"Join Discord\",\"children\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item:icon\"}],\"$L60\"],false,\"$L61\"],\"$undefined\"]}]]}]]}],\"$L62\",[\"$L63\",\"$L64\"]]}]}]}]}]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"48:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L65\"]}]\n49:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n4a:[\"$\",\"$1\",\"c\",{\"children\":[\"$L66\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/docs-static/_next/static/chunks/4a484dd8b34fb596.css?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L67\",null,{\"children\":[\"$\",\"$68\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@69\"}]}]]}]\n4b:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L6a\",null,{\"children\":\"$L6b\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L6c\",null,{\"children\":[\"$\",\"$68\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L6d\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script><script>self.__next_f.push([1,"6e:I[542258,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"ThemeToggle\"]\n"])</script><script>self.__next_f.push([1,"6f:I[476007,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"LayoutHeader\"]\n"])</script><script>self.__next_f.push([1,"70:I[454374,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"\"]\n"])</script><script>self.__next_f.push([1,"71:I[912203,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"Image\"]\n"])</script><script>self.__next_f.push([1,"72:I[13856,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"LargeSearchToggle\"]\n"])</script><script>self.__next_f.push([1,"73:I[679636,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"AIChatSidebar\",1]\n"])</script><script>self.__next_f.push([1,"74:I[476007,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"NavbarLinkItem\"]\n"])</script><script>self.__next_f.push([1,"75:I[13856,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SearchToggle\"]\n"])</script><script>self.__next_f.push([1,"76:I[476007,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"LayoutHeaderTabs\"]\n"])</script><script>self.__next_f.push([1,"77:I[434458,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/517b930c12eed673.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"NotFoundTracker\"]\n"])</script><script>self.__next_f.push([1,"78:I[245811,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SidebarEnabledSync\"]\n"])</script><script>self.__next_f.push([1,"79:I[245811,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"PageBreadcrumb\"]\n"])</script><script>self.__next_f.push([1,"59:[\"$\",\"svg\",null,{\"role\":\"img\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}]}]\n"])</script><script>self.__next_f.push([1,"5a:[\"$\",\"$L5e\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-3 p-4 pb-2 empty:hidden\",\"children\":[[[\"$\",\"$L5f\",null,{\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 ms-auto text-fd-muted-foreground\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-x\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1bl5f8\",{\"d\":\"M18 6 6 18\"}],[\"$\",\"path\",\"d8bk6v\",{\"d\":\"m6 6 12 12\"}],\"$undefined\"]}]}],[\"$\",\"$L53\",null,{\"links\":[\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:0\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:1\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:2\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:3\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:4\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:5\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:6\"]}]],\"$undefined\"]}],\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:1\",[\"$\",\"div\",null,{\"className\":\"text-fd-muted-foreground border-t p-4 pt-2 flex-row items-center justify-end flex max-lg:flex\",\"children\":[[[[\"$\",\"$L57\",\"0\",{\"item\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 text-fd-muted-foreground lg:hidden\",\"aria-label\":\"Join Discord\",\"children\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item:icon\"}],[\"$\",\"$L57\",\"1\",{\"item\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:1:props:item\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 text-fd-muted-foreground lg:hidden me-auto\",\"aria-label\":\"GitHub\",\"children\":\"$59\"}]],false,[\"$\",\"$L6e\",null,{\"mode\":\"light-dark-system\"}]],\"$undefined\"]}]]}]\n"])</script><script>self.__next_f.push([1,"5b:[\"$\",\"$L6f\",null,{\"id\":\"nd-subnav\",\"className\":\"sticky [grid-area:header] flex flex-col top-(--fd-docs-row-1) z-10 backdrop-blur-sm transition-colors data-[transparent=false]:bg-fd-background/80 layout:[--fd-header-height:--spacing(14)] lg:layout:[--fd-header-height:--spacing(24)]\",\"children\":[[\"$\",\"div\",null,{\"data-header-body\":\"\",\"className\":\"flex border-b px-4 gap-4 h-14 md:px-6 justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"items-center flex flex-1\",\"children\":[[\"$\",\"span\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center gap-2.5 font-semibold\",\"children\":[[\"$\",\"$L70\",null,{\"href\":\"https://www.prisma.io\",\"className\":\"mb-0 hover:mb-1 transition-[margin]\",\"children\":[[\"$\",\"$L71\",null,{\"alt\":\"Prisma\",\"src\":{\"src\":\"/docs-static/_next/static/media/logo-dark.f61d6884.svg\",\"width\":120,\"height\":32,\"blurWidth\":0,\"blurHeight\":0},\"aria-label\":\"Prisma\",\"className\":\"dark:hidden\"}],[\"$\",\"$L71\",null,{\"alt\":\"Prisma\",\"src\":{\"src\":\"/docs-static/_next/static/media/logo-white.02012a6c.svg\",\"width\":90,\"height\":28,\"blurWidth\":0,\"blurHeight\":0},\"aria-label\":\"Prisma\",\"className\":\"hidden dark:block\"}]]}],[\"$\",\"span\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":\"/\"}],[\"$\",\"$L70\",null,{\"href\":\"/\",\"className\":\"group relative inline-block pl-3 -ml-3!\",\"children\":[\"$\",\"span\",null,{\"className\":\"font-mono text-lg block translate-y-px\",\"children\":\"docs\"}]}]]}],\"$undefined\"]}],[\"$\",\"$L72\",null,{\"hideIfDisabled\":true,\"className\":\"flex-1 mx-1 my-auto max-md:hidden rounded-xl max-w-sm ps-2.5\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-1 items-center justify-end gap-2\",\"children\":[[\"$\",\"$L73\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 max-md:hidden\",\"children\":[[[\"$\",\"$L74\",\"0\",{\"item\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:6\"}]],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 max-md:hidden\",\"children\":[[\"$\",\"$L57\",\"0\",{\"item\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:1:props:item\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 text-fd-muted-foreground\",\"aria-label\":\"GitHub\",\"children\":\"$59\"}],[\"$\",\"$L57\",\"1\",{\"item\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 text-fd-muted-foreground\",\"aria-label\":\"Join Discord\",\"children\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item:icon\"}]]}],[\"$\",\"$L6e\",null,{\"mode\":\"light-dark-system\"}],[\"$\",\"$L51\",null,{\"children\":false}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center md:hidden\",\"children\":[[\"$\",\"$L75\",null,{\"hideIfDisabled\":true,\"className\":\"p-2\"}],[\"$\",\"$L5f\",null,{\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground [\u0026_svg]:size-4.5 p-2 -me-1.5\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-panel-left\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"rect\",\"afitv7\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}],[\"$\",\"path\",\"fh3hqa\",{\"d\":\"M9 3v18\"}],\"$undefined\"]}]}]]}]]}]]}],[\"$\",\"$L76\",null,{\"data-header-tabs\":\"\",\"className\":\"overflow-x-auto border-b px-6 h-10 max-lg:hidden\",\"links\":[\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:0\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:1\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:2\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:3\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:4\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:5\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:6\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:1:props:item\"]}]]}]\n"])</script><script>self.__next_f.push([1,"5c:[\"$\",\"$L77\",null,{}]\n5d:[[\"$\",\"$L78\",null,{\"enabled\":false}],false,[\"$\",\"article\",null,{\"id\":\"nd-page\",\"data-full\":true,\"className\":\"flex flex-col [grid-area:main] px-4 py-6 gap-4 md:px-6 md:pt-8 xl:px-8 xl:pt-14 *:max-w-321.25\",\"children\":[[\"$\",\"$L79\",null,{}],[\"$\",\"div\",null,{\"className\":\"prose flex-1 max-w-full\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center justify-center text-primary overflow-hidden fixed inset-0 bg-[linear-gradient(transparent_90%,rgba(255,255,255,0.03)_100%)] bg-size-[100%_4px]\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"relative text-[10rem] font-extrabold glitch mb-4 pointer-events-none\",\"data-text\":\"404\",\"children\":\"404\"}],[\"$\",\"p\",null,{\"className\":\"text-2xl font-semibold text-white\",\"children\":\"We could not find the page you were looking for\"}],[\"$\",\"a\",null,{\"href\":\"/docs\",\"className\":\"hover:underline transition-colors\",\"children\":\"Go to docs\"}]]}]}],false]}],false]\n60:[\"$\",\"$L57\",\"1\",{\"item\":\"$47:props:children:1:props:notFound:0:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:1:props:item\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 text-fd-muted-foreground lg:hidden me-auto\",\"aria-label\":\"GitHub\",\"children\":\"$47:props:children:1:props:notFound:0:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:1:props:item:icon\"}]\n61:[\"$\",\"$L6e\",null,{\"mode\":\"light-dark-system\"}]\n"])</script><script>self.__next_f.push([1,"62:[\"$\",\"$L6f\",null,{\"id\":\"nd-subnav\",\"className\":\"sticky [grid-area:header] flex flex-col top-(--fd-docs-row-1) z-10 backdrop-blur-sm transition-colors data-[transparent=false]:bg-fd-background/80 layout:[--fd-header-height:--spacing(14)] lg:layout:[--fd-header-height:--spacing(24)]\",\"children\":[[\"$\",\"div\",null,{\"data-header-body\":\"\",\"className\":\"flex border-b px-4 gap-4 h-14 md:px-6 justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"items-center flex flex-1\",\"children\":[[\"$\",\"span\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center gap-2.5 font-semibold\",\"children\":[[\"$\",\"$L70\",null,{\"href\":\"https://www.prisma.io\",\"className\":\"mb-0 hover:mb-1 transition-[margin]\",\"children\":\"$5b:props:children:0:props:children:0:props:children:0:props:children:0:props:children\"}],[\"$\",\"span\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":\"/\"}],[\"$\",\"$L70\",null,{\"href\":\"/\",\"className\":\"group relative inline-block pl-3 -ml-3!\",\"children\":[\"$\",\"span\",null,{\"className\":\"font-mono text-lg block translate-y-px\",\"children\":\"docs\"}]}]]}],\"$undefined\"]}],[\"$\",\"$L72\",null,{\"hideIfDisabled\":true,\"className\":\"flex-1 mx-1 my-auto max-md:hidden rounded-xl max-w-sm ps-2.5\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-1 items-center justify-end gap-2\",\"children\":[[\"$\",\"$L73\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 max-md:hidden\",\"children\":[[[\"$\",\"$L74\",\"0\",{\"item\":\"$47:props:children:1:props:notFound:0:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:6\"}]],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 max-md:hidden\",\"children\":[[\"$\",\"$L57\",\"0\",{\"item\":\"$47:props:children:1:props:notFound:0:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:1:props:item\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 text-fd-muted-foreground\",\"aria-label\":\"GitHub\",\"children\":\"$47:props:children:1:props:notFound:0:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:1:props:item:icon\"}],[\"$\",\"$L57\",\"1\",{\"item\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 text-fd-muted-foreground\",\"aria-label\":\"Join Discord\",\"children\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item:icon\"}]]}],[\"$\",\"$L6e\",null,{\"mode\":\"light-dark-system\"}],[\"$\",\"$L51\",null,{\"children\":false}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center md:hidden\",\"children\":[[\"$\",\"$L75\",null,{\"hideIfDisabled\":true,\"className\":\"p-2\"}],[\"$\",\"$L5f\",null,{\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground [\u0026_svg]:size-4.5 p-2 -me-1.5\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-panel-left\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"rect\",\"afitv7\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}],[\"$\",\"path\",\"fh3hqa\",{\"d\":\"M9 3v18\"}],\"$undefined\"]}]}]]}]]}]]}],[\"$\",\"$L76\",null,{\"data-header-tabs\":\"\",\"className\":\"overflow-x-auto border-b px-6 h-10 max-lg:hidden\",\"links\":[\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:0\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:1\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:2\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:3\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:4\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:5\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item\",\"$47:props:children:1:props:notFound:0:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:6\",\"$47:props:children:1:props:notFound:0:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:1:props:item\"]}]]}]\n"])</script><script>self.__next_f.push([1,"63:[\"$\",\"$L77\",null,{}]\n64:[[\"$\",\"$L78\",null,{\"enabled\":false}],false,[\"$\",\"article\",null,{\"id\":\"nd-page\",\"data-full\":true,\"className\":\"flex flex-col [grid-area:main] px-4 py-6 gap-4 md:px-6 md:pt-8 xl:px-8 xl:pt-14 *:max-w-321.25\",\"children\":[[\"$\",\"$L79\",null,{}],[\"$\",\"div\",null,{\"className\":\"prose flex-1 max-w-full\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex flex-col items-center justify-center text-primary overflow-hidden fixed inset-0 bg-[linear-gradient(transparent_90%,rgba(255,255,255,0.03)_100%)] bg-size-[100%_4px]\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"relative text-[10rem] font-extrabold glitch mb-4 pointer-events-none\",\"data-text\":\"404\",\"children\":\"404\"}],[\"$\",\"p\",null,{\"className\":\"text-2xl font-semibold text-white\",\"children\":\"We could not find the page you were looking for\"}],[\"$\",\"a\",null,{\"href\":\"/docs\",\"className\":\"hover:underline transition-colors\",\"children\":\"Go to docs\"}]]}]}],false]}],false]\n"])</script><script>self.__next_f.push([1,"7a:I[978207,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"TOCProvider\"]\n"])</script><script>self.__next_f.push([1,"66:[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"TechArticle\\\",\\\"headline\\\":\\\"Raw queries\\\",\\\"description\\\":\\\"Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API.\\\",\\\"url\\\":\\\"https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/raw-queries\\\",\\\"author\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Prisma Data, Inc.\\\",\\\"url\\\":\\\"https://www.prisma.io\\\"},\\\"publisher\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Prisma\\\",\\\"url\\\":\\\"https://www.prisma.io\\\",\\\"logo\\\":{\\\"@type\\\":\\\"ImageObject\\\",\\\"url\\\":\\\"https://www.prisma.io/logo.png\\\"}},\\\"mainEntityOfPage\\\":{\\\"@type\\\":\\\"WebPage\\\",\\\"@id\\\":\\\"https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/raw-queries\\\"}}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"BreadcrumbList\\\",\\\"itemListElement\\\":[{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":1,\\\"name\\\":\\\"Home\\\",\\\"item\\\":\\\"https://www.prisma.io\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":2,\\\"name\\\":\\\"Orm\\\",\\\"item\\\":\\\"https://www.prisma.io/docs/orm\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":3,\\\"name\\\":\\\"Prisma client\\\",\\\"item\\\":\\\"https://www.prisma.io/docs/orm/prisma-client\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":4,\\\"name\\\":\\\"Using raw sql\\\",\\\"item\\\":\\\"https://www.prisma.io/docs/orm/prisma-client/using-raw-sql\\\"},{\\\"@type\\\":\\\"ListItem\\\",\\\"position\\\":5,\\\"name\\\":\\\"Raw queries\\\",\\\"item\\\":\\\"https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/raw-queries\\\"}]}\"}}],[\"$\",\"$L7a\",null,{\"single\":\"$undefined\",\"toc\":[{\"depth\":2,\"url\":\"#raw-queries-with-relational-databases\",\"title\":\"Raw queries with relational databases\"},{\"depth\":3,\"url\":\"#queryraw\",\"title\":[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}]},{\"depth\":4,\"url\":\"#considerations\",\"title\":\"Considerations\"},{\"depth\":4,\"url\":\"#return-type\",\"title\":\"Return type\"},{\"depth\":4,\"url\":\"#signature\",\"title\":\"Signature\"},{\"depth\":4,\"url\":\"#typing-queryraw-results\",\"title\":[\"Typing \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" results\"]},{\"depth\":4,\"url\":\"#type-caveats-when-using-raw-sql\",\"title\":\"Type caveats when using raw SQL\"},{\"depth\":4,\"url\":\"#dynamic-table-names-in-postgresql\",\"title\":\"Dynamic table names in PostgreSQL\"},{\"depth\":3,\"url\":\"#queryrawunsafe\",\"title\":[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe()\"}]},{\"depth\":4,\"url\":\"#signature-1\",\"title\":\"Signature\"},{\"depth\":3,\"url\":\"#executeraw\",\"title\":[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}]},{\"depth\":4,\"url\":\"#considerations-1\",\"title\":\"Considerations\"},{\"depth\":4,\"url\":\"#return-type-1\",\"title\":\"Return type\"},{\"depth\":4,\"url\":\"#signature-2\",\"title\":\"Signature\"},{\"depth\":3,\"url\":\"#executerawunsafe\",\"title\":[\"$\",\"code\",null,{\"children\":\"$$executeRawUnsafe()\"}]},{\"depth\":4,\"url\":\"#signature-3\",\"title\":\"Signature\"},{\"depth\":3,\"url\":\"#raw-query-type-mapping\",\"title\":\"Raw query type mapping\"},{\"depth\":3,\"url\":\"#raw-query-typecasting-behavior\",\"title\":\"Raw query typecasting behavior\"},{\"depth\":3,\"url\":\"#transactions\",\"title\":\"Transactions\"},{\"depth\":3,\"url\":\"#using-variables\",\"title\":\"Using variables\"},{\"depth\":4,\"url\":\"#tagged-template-helpers\",\"title\":\"Tagged template helpers\"},{\"depth\":4,\"url\":\"#alter-limitation-postgresql\",\"title\":[[\"$\",\"code\",null,{\"children\":\"ALTER\"}],\" limitation (PostgreSQL)\"]},{\"depth\":3,\"url\":\"#unsupported-types\",\"title\":\"Unsupported types\"},{\"depth\":2,\"url\":\"#sql-injection-prevention\",\"title\":\"SQL injection prevention\"},{\"depth\":3,\"url\":\"#in-queryraw-and-executeraw\",\"title\":[\"In \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}]]},{\"depth\":4,\"url\":\"#simple-safe-use-of-queryraw-and-executeraw\",\"title\":[\"Simple, safe use of \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}]]},{\"depth\":4,\"url\":\"#unsafe-use-of-queryraw-and-executeraw\",\"title\":[\"Unsafe use of \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}]]},{\"depth\":4,\"url\":\"#safely-using-queryraw-and-executeraw-in-more-complex-scenarios\",\"title\":\"$L7b\"},{\"depth\":5,\"url\":\"#building-raw-queries-separate-to-query-execution\",\"title\":\"$L7c\"},{\"depth\":5,\"url\":\"#building-raw-queries-elsewhere-or-in-stages\",\"title\":\"$L7d\"},{\"depth\":3,\"url\":\"#in-queryrawunsafe-and-executerawunsafe\",\"title\":\"$L7e\"},{\"depth\":4,\"url\":\"#using-queryrawunsafe-and-executerawunsafe-unsafely\",\"title\":\"$L7f\"},{\"depth\":4,\"url\":\"#parameterized-queries\",\"title\":\"$L80\"},{\"depth\":5,\"url\":\"#parameterized-postgresql-ilike-query\",\"title\":\"$L81\"},{\"depth\":2,\"url\":\"#raw-queries-with-mongodb\",\"title\":\"$L82\"},{\"depth\":3,\"url\":\"#runcommandraw\",\"title\":\"$L83\"},{\"depth\":4,\"url\":\"#return-type-2\",\"title\":\"$L84\"},{\"depth\":4,\"url\":\"#signature-4\",\"title\":\"$L85\"},{\"depth\":3,\"url\":\"#findraw\",\"title\":\"$L86\"},{\"depth\":4,\"url\":\"#return-type-3\",\"title\":\"$L87\"},{\"depth\":4,\"url\":\"#signature-5\",\"title\":\"$L88\"},{\"depth\":3,\"url\":\"#aggregateraw\",\"title\":\"$L89\"},{\"depth\":4,\"url\":\"#return-type-4\",\"title\":\"$L8a\"},{\"depth\":4,\"url\":\"#signature-6\",\"title\":\"$L8b\"},{\"depth\":4,\"url\":\"#caveats\",\"title\":\"$L8c\"}],\"children\":\"$L8d\"}]]\n"])</script><script>self.__next_f.push([1,"8e:I[245811,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"PageTOCPopover\"]\n"])</script><script>self.__next_f.push([1,"8f:I[245811,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"PageTOCPopoverTrigger\"]\n"])</script><script>self.__next_f.push([1,"90:I[245811,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"PageTOCPopoverContent\"]\n"])</script><script>self.__next_f.push([1,"91:I[978207,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"TOCScrollArea\"]\n"])</script><script>self.__next_f.push([1,"92:I[662599,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"TOCItems\"]\n"])</script><script>self.__next_f.push([1,"93:I[334990,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"LLMCopyButton\"]\n"])</script><script>self.__next_f.push([1,"94:I[334990,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"ViewOptions\"]\n"])</script><script>self.__next_f.push([1,"7b:[\"Safely using \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" in more complex scenarios\"]\n7c:\"Building raw queries separate to query execution\"\n7d:\"Building raw queries elsewhere or in stages\"\n7e:[\"In \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRawUnsafe\"}]]\n7f:[\"Using \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRawUnsafe\"}],\" unsafely\"]\n80:\"Parameterized queries\"\n81:[\"Parameterized PostgreSQL \",[\"$\",\"code\",null,{\"children\":\"ILIKE\"}],\" query\"]\n82:\"Raw queries with MongoDB\"\n83:[\"$\",\"code\",null,{\"children\":\"$$runCommandRaw()\"}]\n84:\"Return type\"\n85:\"Signature\"\n86:[\"$\",\"code\",null,{\"children\":\"findRaw()\"}]\n87:\"Return type\"\n88:\"Signature\"\n89:[\"$\",\"code\",null,{\"children\":\"aggregateRaw()\"}]\n8a:\"Return type\"\n8b:\"Signature\"\n8c:\"Caveats\"\n"])</script><script>self.__next_f.push([1,"8d:[false,[\"$\",\"$L8e\",null,{\"children\":[[\"$\",\"$L8f\",null,{}],[\"$\",\"$L90\",null,{\"children\":[\"$undefined\",[\"$\",\"$L91\",null,{\"children\":[\"$\",\"$L92\",null,{}]}],\"$undefined\"]}]]}],[\"$\",\"article\",null,{\"id\":\"nd-page\",\"data-full\":false,\"className\":\"flex flex-col [grid-area:main] px-4 py-6 gap-4 md:px-6 md:pt-8 xl:px-8 xl:pt-14 *:max-w-225\",\"children\":[[\"$\",\"$L79\",null,{}],[[\"$\",\"div\",null,{\"className\":\"flex flex-col md:flex-row items-start gap-4 pt-2 pb-1 md:justify-between\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-[1.75em] font-semibold\",\"children\":\"Raw queries\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-row gap-2 items-center\",\"children\":[[\"$\",\"$L93\",null,{\"markdownUrl\":\"/docs/orm/prisma-client/using-raw-sql/raw-queries.mdx\"}],[\"$\",\"$L94\",null,{\"markdownUrl\":\"/docs/orm/prisma-client/using-raw-sql/raw-queries.mdx\",\"githubUrl\":\"https://github.com/prisma/docs/blob/main/apps/docs/content/docs/orm/prisma-client/using-raw-sql/raw-queries.mdx\"}]]}]]}],[\"$\",\"p\",null,{\"className\":\"mb-2 text-lg text-fd-muted-foreground\",\"children\":\"Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API\"}],null,[\"$\",\"div\",null,{\"className\":\"prose flex-1\",\"children\":[[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"role\":\"alert\",\"className\":\"relative w-full rounded-md border p-4 gap-3 type-text-sm [\u0026\u003esvg]:left-4 [\u0026\u003esvg]:top-4 [\u0026\u003esvg]:w-5 [\u0026\u003esvg]:h-5 alert-alert flex items-start [\u0026\u003ei]:mt-0.5 bg-background-warning border-none text-foreground-warning [\u0026\u003esvg]:text-foreground-warning\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-duotone fa-solid fa-circle-exclamation\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003e*]:first:mt-0 [\u0026\u003e*]:last:mb-0 [\u0026 strong]:text-inherit\",\"children\":[\"$\",\"p\",null,{\"children\":[\"We recommend using \",\"$L95\",\" for type-safe SQL queries instead of the raw queries described below.\"]}]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Prisma Client supports sending raw queries to your database. You may wish to use raw queries if:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"you want to run a heavily optimized query\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"you require a feature that Prisma Client does not yet support (please \",\"$L96\",\")\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Raw queries are available for all relational databases Prisma ORM supports, as well as MongoDB. For more details, see the relevant sections:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"$L97\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"$L98\"}],\"\\n\"]}],\"\\n\",[\"$\",\"h2\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"raw-queries-with-relational-databases\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#raw-queries-with-relational-databases\",\"className\":\"peer\",\"children\":\"Raw queries with relational databases\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"For relational databases, Prisma Client exposes four methods that allow you to send raw queries. You can use:\"}],\"\\n\",[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" to return actual records (for example, using \",[\"$\",\"code\",null,{\"children\":\"SELECT\"}],\").\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" to return a count of affected rows (for example, after an \",[\"$\",\"code\",null,{\"children\":\"UPDATE\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"DELETE\"}],\").\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\" to return actual records (for example, using \",[\"$\",\"code\",null,{\"children\":\"SELECT\"}],\") using a raw string.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$executeRawUnsafe\"}],\" to return a count of affected rows (for example, after an \",\"$L99\",\" or \",\"$L9a\",\") using a raw string.\"]}],\"\\n\"]}],\"\\n\",\"$L9b\",\"\\n\",\"$L9c\",\"\\n\",\"$L9d\",\"\\n\",\"$L9e\",\"\\n\",\"$L9f\",\"\\n\",\"$La0\",\"\\n\",\"$La1\",\"\\n\",\"$La2\",\"\\n\",\"$La3\",\"\\n\",\"$La4\",\"\\n\",\"$La5\",\"\\n\",\"$La6\",\"\\n\",\"$La7\",\"\\n\",\"$La8\",\"\\n\",\"$La9\",\"\\n\",\"$Laa\",\"\\n\",\"$Lab\",\"\\n\",\"$Lac\",\"\\n\",\"$Lad\",\"\\n\",\"$Lae\",\"\\n\",\"$Laf\",\"\\n\",\"$Lb0\",\"\\n\",\"$Lb1\",\"\\n\",\"$Lb2\",\"\\n\",\"$Lb3\",\"\\n\",\"$Lb4\",\"\\n\",\"$Lb5\",\"\\n\",\"$Lb6\",\"\\n\",\"$Lb7\",\"\\n\",\"$Lb8\",\"\\n\",\"$Lb9\",\"\\n\",\"$Lba\",\"\\n\",\"$Lbb\",\"\\n\",\"$Lbc\",\"\\n\",\"$Lbd\",\"\\n\",\"$Lbe\",\"\\n\",\"$Lbf\",\"\\n\",\"$Lc0\",\"\\n\",\"$Lc1\",\"\\n\",\"$Lc2\",\"\\n\",\"$Lc3\",\"\\n\",\"$Lc4\",\"\\n\",\"$Lc5\",\"\\n\",\"$Lc6\",\"\\n\",\"$Lc7\",\"\\n\",\"$Lc8\",\"\\n\",\"$Lc9\",\"\\n\",\"$Lca\",\"\\n\",\"$Lcb\",\"\\n\",\"$Lcc\",\"\\n\",\"$Lcd\",\"\\n\",\"$Lce\",\"\\n\",\"$Lcf\",\"\\n\",\"$Ld0\",\"\\n\",\"$Ld1\",\"\\n\",\"$Ld2\",\"\\n\",\"$Ld3\",\"\\n\",\"$Ld4\",\"\\n\",\"$Ld5\",\"\\n\",\"$Ld6\",\"\\n\",\"$Ld7\",\"\\n\",\"$Ld8\",\"\\n\",\"$Ld9\",\"\\n\",\"$Lda\",\"\\n\",\"$Ldb\",\"\\n\",\"$Ldc\",\"\\n\",\"$Ldd\",\"\\n\",\"$Lde\",\"\\n\",\"$Ldf\",\"\\n\",\"$Le0\",\"\\n\",\"$Le1\",\"\\n\",\"$Le2\",\"\\n\",\"$Le3\",\"\\n\",\"$Le4\",\"\\n\",\"$Le5\",\"\\n\",\"$Le6\",\"\\n\",\"$Le7\",\"\\n\",\"$Le8\",\"\\n\",\"$Le9\",\"\\n\",\"$Lea\",\"\\n\",\"$Leb\",\"\\n\",\"$Lec\",\"\\n\",\"$Led\",\"\\n\",\"$Lee\",\"\\n\",\"$Lef\",\"\\n\",\"$Lf0\",\"\\n\",\"$Lf1\",\"\\n\",\"$Lf2\",\"\\n\",\"$Lf3\",\"\\n\",\"$Lf4\",\"\\n\",\"$Lf5\",\"\\n\",\"$Lf6\",\"\\n\",\"$Lf7\",\"\\n\",\"$Lf8\",\"\\n\",\"$Lf9\",\"\\n\",\"$Lfa\",\"\\n\",\"$Lfb\",\"\\n\",\"$Lfc\",\"\\n\",\"$Lfd\",\"\\n\",\"$Lfe\",\"\\n\",\"$Lff\",\"\\n\",\"$L100\",\"\\n\",\"$L101\",\"\\n\",\"$L102\",\"\\n\",\"$L103\",\"\\n\",\"$L104\",\"\\n\",\"$L105\",\"\\n\",\"$L106\",\"\\n\",\"$L107\",\"\\n\",\"$L108\",\"\\n\",\"$L109\",\"\\n\",\"$L10a\",\"\\n\",\"$L10b\",\"\\n\",\"$L10c\",\"\\n\",\"$L10d\",\"\\n\",\"$L10e\",\"\\n\",\"$L10f\",\"\\n\",\"$L110\",\"\\n\",\"$L111\",\"\\n\",\"$L112\",\"\\n\",\"$L113\",\"\\n\",\"$L114\",\"\\n\",\"$L115\",\"\\n\",\"$L116\",\"\\n\",\"$L117\",\"\\n\",\"$L118\",\"\\n\",\"$L119\",\"\\n\",\"$L11a\",\"\\n\",\"$L11b\",\"\\n\",\"$L11c\",\"\\n\",\"$L11d\",\"\\n\",\"$L11e\",\"\\n\",\"$L11f\",\"\\n\",\"$L120\",\"\\n\",\"$L121\",\"\\n\",\"$L122\",\"\\n\",\"$L123\",\"\\n\",\"$L124\",\"\\n\",\"$L125\",\"\\n\",\"$L126\",\"\\n\",\"$L127\",\"\\n\",\"$L128\",\"\\n\",\"$L129\",\"\\n\",\"$L12a\",\"\\n\",\"$L12b\",\"\\n\",\"$L12c\",\"\\n\",\"$L12d\",\"\\n\",\"$L12e\",\"\\n\",\"$L12f\",\"\\n\",\"$L130\",\"\\n\",\"$L131\",\"\\n\",\"$L132\",\"\\n\",\"$L133\",\"\\n\",\"$L134\",\"\\n\",\"$L135\",\"\\n\",\"$L136\",\"\\n\",\"$L137\",\"\\n\",\"$L138\",\"\\n\",\"$L139\",\"\\n\",\"$L13a\",\"\\n\",\"$L13b\",\"\\n\",\"$L13c\",\"\\n\",\"$L13d\",\"\\n\",\"$L13e\",\"\\n\",\"$L13f\",\"\\n\",\"$L140\",\"\\n\",\"$L141\",\"\\n\",\"$L142\",\"\\n\",\"$L143\",\"\\n\",\"$L144\",\"\\n\",\"$L145\",\"\\n\",\"$L146\",\"\\n\",\"$L147\",\"\\n\",\"$L148\",\"\\n\",\"$L149\",\"\\n\",\"$L14a\",\"\\n\",\"$L14b\",\"\\n\",\"$L14c\",\"\\n\",\"$L14d\",\"\\n\",\"$L14e\",\"\\n\",\"$L14f\",\"\\n\",\"$L150\",\"\\n\",\"$L151\",\"\\n\",\"$L152\",\"\\n\",\"$L153\",\"\\n\",\"$L154\",\"\\n\",\"$L155\",\"\\n\",\"$L156\",\"\\n\",\"$L157\",\"\\n\",\"$L158\",\"\\n\",\"$L159\",\"\\n\",\"$L15a\",\"\\n\",\"$L15b\",\"\\n\",\"$L15c\",\"\\n\",\"$L15d\",\"\\n\",\"$L15e\",\"\\n\",\"$L15f\",\"\\n\",\"$L160\",\"\\n\",\"$L161\",\"\\n\",\"$L162\",\"\\n\",\"$L163\",\"\\n\",\"$L164\"]}],\"$L165\"],\"$L166\"]}],\"$L167\"]\n"])</script><script>self.__next_f.push([1,"169:I[429928,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"CodeBlock\"]\n"])</script><script>self.__next_f.push([1,"16b:I[429928,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"Pre\"]\n"])</script><script>self.__next_f.push([1,"228:I[598104,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"I18nLabel\"]\n"])</script><script>self.__next_f.push([1,"229:I[245811,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"PageFooter\"]\n"])</script><script>self.__next_f.push([1,"22a:I[776914,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/56e62012a3797ca7.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/eb137846e4540947.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/ed90faef976a1828.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/cc06f21fee0dfc52.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"99:[\"$\",\"code\",null,{\"children\":\"UPDATE\"}]\n9a:[\"$\",\"code\",null,{\"children\":\"DELETE\"}]\n9b:[\"$\",\"p\",null,{\"children\":[\"The methods with \\\"Unsafe\\\" in the name are a lot more flexible but are at \",[\"$\",\"strong\",null,{\"children\":\"significant risk of making your code vulnerable to SQL injection\"}],\".\"]}]\n9c:[\"$\",\"p\",null,{\"children\":[\"The other two methods are safe to use with a simple template tag, no string building, and no concatenation. \",[\"$\",\"strong\",null,{\"children\":\"However\"}],\", caution is required for more complex use cases as it is still possible to introduce SQL injection if these methods are used in certain ways. For more details, see the \",\"$L168\",\" section below.\"]}]\n9d:[\"$\",\"blockquote\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note\"}],\": All methods in the above list can only run \",[\"$\",\"strong\",null,{\"children\":\"one\"}],\" query at a time. You cannot append a second query - for example, calling any of them with \",[\"$\",\"code\",null,{\"children\":\"select 1; select 2;\"}],\" will not work.\"]}],\"\\n\"]}]\n9e:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"queryraw\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#queryraw\",\"className\":\"peer\",\"children\":[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n9f:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" returns actual database records. For example, the following \",[\"$\",\"code\",null,{\"children\":\"SELECT\"}],\" query returns all fields for each record in the \",[\"$\",\"code\",null,{\"children\":\"User\"}],\" table:\"]}]\n16a:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003ea0:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$16a\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A"])</script><script>self.__next_f.push([1,"49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM User`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]}]}]}]\na1:[\"$\",\"p\",null,{\"children\":[\"The method is implemented as a \",\"$L16c\",\", which allows you to pass a template literal where you can easily insert your \",\"$L16d\",\". In turn, Prisma Client creates prepared statements that are safe from SQL injections:\"]}]\n16e:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"a2:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$16e\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" email\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"emelie@prisma.io\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM User WHERE email = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"email\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"a3:[\"$\",\"p\",null,{\"children\":[\"You can also use the \",\"$L16f\",\" helper, in fact, the \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" method will \",[\"$\",\"strong\",null,{\"children\":\"only accept\"}],\" a template string or the \",[\"$\",\"code\",null,{\"children\":\"Prisma.sql\"}],\" helper:\"]}]\n170:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"a4:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$170\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" email\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"emelie@prisma.io\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(Prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"sql\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM User WHERE email = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"email\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"a5:[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"role\":\"alert\",\"className\":\"relative w-full rounded-md border p-4 gap-3 type-text-sm [\u0026\u003esvg]:left-4 [\u0026\u003esvg]:top-4 [\u0026\u003esvg]:w-5 [\u0026\u003esvg]:h-5 alert-alert flex items-start [\u0026\u003ei]:mt-0.5 bg-background-warning border-none text-foreground-warning [\u0026\u003esvg]:text-foreground-warning\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-duotone fa-solid fa-circle-exclamation\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003e*]:first:mt-0 [\u0026\u003e*]:last:mb-0 [\u0026 strong]:text-inherit\",\"children\":[\"$\",\"p\",null,{\"children\":[\"If you use string building to incorporate untrusted input into queries passed to this method, then you open up the possibility for SQL injection attacks. SQL injection attacks can expose your data to modification or deletion. The preferred mechanism would be to include the text of the query at the point that you run this method. For more information on this risk and also examples of how to prevent it, see the \",\"$L171\",\" section below.\"]}]}]]}]\na6:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"considerations\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#considerations\",\"className\":\"peer\",\"children\":\"Considerations\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\na7:[\"$\",\"p\",null,{\"children\":\"Be aware that:\"}]\n172:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e173:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-"])</script><script>self.__next_f.push([1,".553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"a8:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Template variables cannot be used inside SQL string literals. For example, the following query would \",[\"$\",\"strong\",null,{\"children\":\"not\"}],\" work:\"]}],\"\\n\",[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$172\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Bob\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT 'My name is ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}';`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Instead, you can either pass the whole string as a variable, or use string concatenation:\"}],\"\\n\",[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$173\",\"children\":\"$L174\"}],\"\\n\",\"$L175\",\"\\n\"]}],\"\\n\",\"$L176\",\"\\n\",\"$L177\",\"\\n\",\"$L178\",\"\\n\"]}]\n"])</script><script>self.__next_f.push([1,"a9:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"return-type\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#return-type\",\"className\":\"peer\",\"children\":\"Return type\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\naa:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" returns an array. Each object corresponds to a database record:\"]}]\n"])</script><script>self.__next_f.push([1,"ab:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"\u003csvg viewBox=\\\"0 0 24 24\\\"\u003e\u003cpath d=\\\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\\\" fill=\\\"currentColor\\\" /\u003e\u003c/svg\u003e\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"[\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  { \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"id\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"1\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"email\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"emelie@prisma.io\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Emelie\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  { \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"id\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"2\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"email\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"yin@prisma.io\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\": \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Yin\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" },\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"]\"}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"ac:[\"$\",\"p\",null,{\"children\":[\"You can also \",\"$L179\",\".\"]}]\nad:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"signature\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#signature\",\"className\":\"peer\",\"children\":\"Signature\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n17a:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"ae:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$17a\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"$$queryRaw\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"T\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" unknown\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003e(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" TemplateStringsArray\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" |\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" Prisma\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\".\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"Sql\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"...\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"values\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" any\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"[])\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" PrismaPromise\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"T\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003e;\"}]]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"af:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"typing-queryraw-results\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#typing-queryraw-results\",\"className\":\"peer\",\"children\":[\"Typing \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" results\"]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\nb0:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"PrismaPromise\u003cT\u003e\"}],\" uses a \",\"$L17b\",\". You can determine the type of \",[\"$\",\"code\",null,{\"children\":\"T\"}],\" when you invoke the \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" method. In the following example, \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" returns \",[\"$\",\"code\",null,{\"children\":\"User[]\"}],\":\"]}]\n17c:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"b1:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$17c\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// import the generated `User` type from the `@prisma/client` module\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" { User } \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"from\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"@prisma/client\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"User\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"[]\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM User`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// result is of type: `User[]`\"}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"b2:[\"$\",\"blockquote\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note\"}],\": If you do not provide a type, \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" defaults to \",[\"$\",\"code\",null,{\"children\":\"unknown\"}],\".\"]}],\"\\n\"]}]\nb3:[\"$\",\"p\",null,{\"children\":[\"If you are selecting \",[\"$\",\"strong\",null,{\"children\":\"specific fields\"}],\" of the model or want to include relations, refer to the documentation about \",\"$L17d\",\" if you want to make sure that the results are properly typed.\"]}]\nb4:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"type-caveats-when-using-raw-sql\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#type-caveats-when-using-raw-sql\",\"className\":\"peer\",\"children\":\"Type caveats when using raw SQL\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\nb5:[\"$\",\"p\",null,{\"children\":[\"When you type the results of \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\", the raw data might not always match the suggested TypeScript type. For example, the following Prisma model includes a \",[\"$\",\"code\",null,{\"children\":\"Boolean\"}],\" field named \",[\"$\",\"code\",null,{\"children\":\"published\"}],\":\"]}]\n"])</script><script>self.__next_f.push([1,"b6:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark has-highlighted\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"\u003csvg viewBox=\\\"0 0 24 24\\\"\u003e\u003cpath d=\\\"M21.8068 18.2848L13.5528.7565c-.207-.4382-.639-.7273-1.1286-.7541-.5023-.0293-.9523.213-1.2062.6253L2.266 15.1271c-.2773.4518-.2718 1.0091.0158 1.4555l4.3759 6.7786c.2608.4046.7127.6388 1.1823.6388.1332 0 .267-.0188.3987-.0577l12.7019-3.7568c.3891-.1151.7072-.3904.8737-.7553s.1633-.7828-.0075-1.1454zm-1.8481.7519L9.1814 22.2242c-.3292.0975-.6448-.1873-.5756-.5194l3.8501-18.4386c.072-.3448.5486-.3996.699-.0803l7.1288 15.138c.1344.2856-.019.6224-.325.7128z\\\" fill=\\\"currentColor\\\" /\u003e\u003c/svg\u003e\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"model\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" Post\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  id        \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"Int\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"     @id\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" @default\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"autoincrement\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"())\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line highlighted\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  published \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"Boolean\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" @default\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"false\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\") \"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  title     \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"String\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  content   \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"String\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"?\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"b7:[\"$\",\"p\",null,{\"children\":[\"The following query returns all posts. It then prints out the value of the \",[\"$\",\"code\",null,{\"children\":\"published\"}],\" field for each \",[\"$\",\"code\",null,{\"children\":\"Post\"}],\":\"]}]\n17e:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"b8:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$17e\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"Post\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"[]\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM Post`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"result.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"forEach\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"((\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"x\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\") \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(x.published);\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"});\"}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"b9:[\"$\",\"p\",null,{\"children\":[\"For regular CRUD queries, the Prisma Client query engine standardizes the return type for all databases. \",[\"$\",\"strong\",null,{\"children\":\"Using the raw queries does not\"}],\". If the database provider is MySQL, the returned values are \",[\"$\",\"code\",null,{\"children\":\"1\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"0\"}],\". However, if the database provider is PostgreSQL, the values are \",[\"$\",\"code\",null,{\"children\":\"true\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"false\"}],\".\"]}]\nba:[\"$\",\"blockquote\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note\"}],\": Prisma sends JavaScript integers to PostgreSQL as \",[\"$\",\"code\",null,{\"children\":\"INT8\"}],\". This might conflict with your user-defined functions that accept only \",[\"$\",\"code\",null,{\"children\":\"INT4\"}],\" as input. If you use \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" in conjunction with a PostgreSQL database, update the input types to \",[\"$\",\"code\",null,{\"children\":\"INT8\"}],\", or cast your query parameters to \",[\"$\",\"code\",null,{\"children\":\"INT4\"}],\".\"]}],\"\\n\"]}]\nbb:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"dynamic-table-names-in-postgresql\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#dynamic-table-names-in-postgresql\",\"className\":\"peer\",\"children\":\"Dynamic table names in PostgreSQL\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\nbc:[\"$\",\"p\",null,{\"children\":[\"$L17f\",\". This means that you cannot use dynamic table names with \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\". Instead, you must use \",\"$L180\",\", as follows:\"]}]\n181:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"bd:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$181\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"let\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" userTable \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"User\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"let\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" result \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRawUnsafe\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"userTable\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"be:[\"$\",\"p\",null,{\"children\":[\"Note that if you use \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\" in conjunction with user inputs, you risk SQL injection attacks. \",\"$L182\",\".\"]}]\nbf:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"queryrawunsafe\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#queryrawunsafe\",\"className\":\"peer\",\"children\":[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe()\"}]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\nc0:[\"$\",\"p\",null,{\"children\":[\"The \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe()\"}],\" method allows you to pass a raw string (or template string) to the database.\"]}]\nc1:[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"role\":\"alert\",\"className\":\"relative w-full rounded-md border p-4 gap-3 type-text-sm [\u0026\u003esvg]:left-4 [\u0026\u003esvg]:top-4 [\u0026\u003esvg]:w-5 [\u0026\u003esvg]:h-5 alert-alert flex items-start [\u0026\u003ei]:mt-0.5 bg-background-warning border-none text-foreground-warning [\u0026\u003esvg]:text-foreground-warning\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-duotone fa-solid fa-circle-exclamation\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003e*]:first:mt-0 [\u0026\u003e*]:last:mb-0 [\u0026 strong]:text-inherit\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"If you use this method with user inputs (in other words, \",[\"$\",\"code\",null,{\"children\":\"SELECT * FROM table WHERE columnName = ${userInput}\"}],\"), then you open up the possibility for SQL injection attacks. SQL injection attacks can expose your data to modification or deletion.\",[\"$\",\"br\",null,{}],[\"$\",\"br\",null,{}]]}],[\"$\",\"p\",null,{\"children\":[\"Wherever possible you should use the \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" method instead. When used correctly \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" method is significantly safer but note that the \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" method can also be made vulnerable in certain circumstances. For more information, see the \",\"$L183\",\" section below.\"]}]]}]]}]\nc2:[\"$\",\"p\",null,{\"children\":[\"The following query returns all fields for each record in the \",[\"$\",\"code\",null,{\"children\":\"User\"}],\" table:\"]}]\n184:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"c3:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$184\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// import the generated `User` type from the `@prisma/client` module\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" { User } \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"from\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"@prisma/client\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRawUnsafe\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"SELECT * FROM User\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"c4:[\"$\",\"p\",null,{\"children\":[\"You can also run a parameterized query. The following example returns all users whose email contains the string \",[\"$\",\"code\",null,{\"children\":\"emelie@prisma.io\"}],\":\"]}]\n185:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003ec5:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$185\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRawUnsafe\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"SELECT * FROM users WHERE email = $1\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"emelie@prisma.io\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]}]}]}]\nc6:[\"$\",\"blockquote\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note\"}],\": Prisma sends JavaScript integers to PostgreSQL as \",[\"$\",\"code\",null,{\"children\":\"INT8\"}],\". This might conflict with your user-defined functions that accept only \",[\"$\",\"code\",null,{\"children\":\"INT4\"}],\" as input. If you use a parameterized \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\" query in conjunction with a PostgreSQL database, update the input types to \",[\"$\",\"code\",null,{\"children\":\"INT8\"}],\", or cast your query parameters to \",[\"$\",\"code\",null,{\"children\":\"INT4\"}],\".\"]}],\"\\n\"]}]\nc7:[\"$\",\"p\",null,{\"children\":[\"For more details on using parameterized queries, see the \",\"$L186\",\" section below.\"]}]\nc8:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"signature-1\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#signature-1\",\"className\":\"peer\",\"children\":\"Signature\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n187:T4dc,\u003csvg vi"])</script><script>self.__next_f.push([1,"ewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"c9:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$187\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"$$queryRawUnsafe\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"T\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" unknown\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003e(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" string\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"...\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"values\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" any\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"[])\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" PrismaPromise\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"T\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003e;\"}]]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"ca:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"executeraw\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#executeraw\",\"className\":\"peer\",\"children\":[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\ncb:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" returns the \",[\"$\",\"em\",null,{\"children\":\"number of rows affected by a database operation\"}],\", such as \",[\"$\",\"code\",null,{\"children\":\"UPDATE\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"DELETE\"}],\". This function does \",[\"$\",\"strong\",null,{\"children\":\"not\"}],\" return database records. The following query updates records in the database and returns a count of the number of records that were updated:\"]}]\n188:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"cc:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$188\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" number\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"  await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`UPDATE User SET active = true WHERE emailValidated = true`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"cd:[\"$\",\"p\",null,{\"children\":[\"The method is implemented as a \",\"$L189\",\", which allows you to pass a template literal where you can easily insert your \",\"$L18a\",\". In turn, Prisma Client creates prepared statements that are safe from SQL injections:\"]}]\n18b:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"ce:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$18b\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" emailValidated\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" true\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" active\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" true\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" number\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"  await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`UPDATE User SET active = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"active\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"} WHERE emailValidated = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"emailValidated\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"};`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"cf:[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"role\":\"alert\",\"className\":\"relative w-full rounded-md border p-4 gap-3 type-text-sm [\u0026\u003esvg]:left-4 [\u0026\u003esvg]:top-4 [\u0026\u003esvg]:w-5 [\u0026\u003esvg]:h-5 alert-alert flex items-start [\u0026\u003ei]:mt-0.5 bg-background-warning border-none text-foreground-warning [\u0026\u003esvg]:text-foreground-warning\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-duotone fa-solid fa-circle-exclamation\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003e*]:first:mt-0 [\u0026\u003e*]:last:mb-0 [\u0026 strong]:text-inherit\",\"children\":[\"$\",\"p\",null,{\"children\":[\"If you use string building to incorporate untrusted input into queries passed to this method, then you open up the possibility for SQL injection attacks. SQL injection attacks can expose your data to modification or deletion. The preferred mechanism would be to include the text of the query at the point that you run this method. For more information on this risk and also examples of how to prevent it, see the \",\"$L18c\",\" section below.\"]}]}]]}]\nd0:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"considerations-1\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#considerations-1\",\"className\":\"peer\",\"children\":\"Considerations\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\nd1:[\"$\",\"p\",null,{\"children\":\"Be aware that:\"}]\n190:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e191:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-"])</script><script>self.__next_f.push([1,".45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"d2:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" does not support multiple queries in a single string (for example, \",[\"$\",\"code\",null,{\"children\":\"ALTER TABLE\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"CREATE TABLE\"}],\" together).\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Prisma Client submits prepared statements, and prepared statements only allow a subset of SQL statements. For example, \",[\"$\",\"code\",null,{\"children\":\"START TRANSACTION\"}],\" is not permitted. You can learn more about \",\"$L18d\",\".\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[\"$L18e\",\" - see the \",\"$L18f\",\".\"]}],\"\\n\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Template variables cannot be used inside SQL string literals. For example, the following query would \",[\"$\",\"strong\",null,{\"children\":\"not\"}],\" work:\"]}],\"\\n\",[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$190\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Bob\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`UPDATE user SET greeting = 'My name is ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}';`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]}],\"\\n\",[\"$\",\"p\",null,{\"children\":\"Instead, you can either pass the whole string as a variable, or use string concatenation:\"}],\"\\n\",[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$191\",\"children\":\"$L192\"}],\"\\n\",\"$L193\",\"\\n\"]}],\"\\n\",\"$L194\",\"\\n\"]}]\n"])</script><script>self.__next_f.push([1,"d3:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"return-type-1\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#return-type-1\",\"className\":\"peer\",\"children\":\"Return type\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\nd4:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" returns a \",[\"$\",\"code\",null,{\"children\":\"number\"}],\".\"]}]\nd5:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"signature-2\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#signature-2\",\"className\":\"peer\",\"children\":\"Signature\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n195:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"d6:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$195\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"$$executeRaw\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"T\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" unknown\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003e(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" TemplateStringsArray\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" |\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" Prisma\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\".\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"Sql\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"...\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"values\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" any\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"[])\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" PrismaPromise\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"number\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003e;\"}]]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"d7:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"executerawunsafe\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#executerawunsafe\",\"className\":\"peer\",\"children\":[\"$\",\"code\",null,{\"children\":\"$$executeRawUnsafe()\"}]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\nd8:[\"$\",\"p\",null,{\"children\":[\"The \",[\"$\",\"code\",null,{\"children\":\"$$executeRawUnsafe()\"}],\" method allows you to pass a raw string (or template string) to the database. Like \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\", it does \",[\"$\",\"strong\",null,{\"children\":\"not\"}],\" return database records, but returns the number of rows affected.\"]}]\nd9:[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"role\":\"alert\",\"className\":\"relative w-full rounded-md border p-4 gap-3 type-text-sm [\u0026\u003esvg]:left-4 [\u0026\u003esvg]:top-4 [\u0026\u003esvg]:w-5 [\u0026\u003esvg]:h-5 alert-alert flex items-start [\u0026\u003ei]:mt-0.5 bg-background-warning border-none text-foreground-warning [\u0026\u003esvg]:text-foreground-warning\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-duotone fa-solid fa-circle-exclamation\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003e*]:first:mt-0 [\u0026\u003e*]:last:mb-0 [\u0026 strong]:text-inherit\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"If you use this method with user inputs (in other words, \",[\"$\",\"code\",null,{\"children\":\"SELECT * FROM table WHERE columnName = ${userInput}\"}],\"), then you open up the possibility for SQL injection attacks. SQL injection attacks can expose your data to modification or deletion.\",[\"$\",\"br\",null,{}],[\"$\",\"br\",null,{}]]}],[\"$\",\"p\",null,{\"children\":[\"Wherever possible you should use the \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" method instead. When used correctly \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" method is significantly safer but note that the \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" method can also be made vulnerable in certain circumstances. For more information, see the \",\"$L196\",\" section below.\"]}]]}]]}]\nda:[\"$\",\"p\",null,{\"children\":\"The following example uses a template string to update records in the database. It then returns a count of the number of records that were updated:\"}]\n197:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"db:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$197\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" emailValidated\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" true\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" active\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" true\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRawUnsafe\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"  `UPDATE User SET active = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"active\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"} WHERE emailValidated = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"emailValidated\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"dc:[\"$\",\"p\",null,{\"children\":\"The same can be written as a parameterized query:\"}]\n198:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"dd:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$198\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRawUnsafe\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"  \\\"UPDATE User SET active = $1 WHERE emailValidated = $2\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"  \\\"yin@prisma.io\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"  true\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"de:[\"$\",\"p\",null,{\"children\":[\"For more details on using parameterized queries, see the \",\"$L199\",\" section below.\"]}]\ndf:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"signature-3\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#signature-3\",\"className\":\"peer\",\"children\":\"Signature\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n19a:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"e0:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$19a\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"$$executeRawUnsafe\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"T\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" unknown\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003e(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" string\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"...\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"values\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" any\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"[])\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" PrismaPromise\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"number\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003e;\"}]]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"e1:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"raw-query-type-mapping\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#raw-query-type-mapping\",\"className\":\"peer\",\"children\":\"Raw query type mapping\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\ne2:[\"$\",\"p\",null,{\"children\":[\"Prisma maps any database values returned by \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\"to their corresponding \",\"$L19b\",\". This behavior is the same as for regular Prisma query methods like \",[\"$\",\"code\",null,{\"children\":\"findMany()\"}],\".\"]}]\ne3:[\"$\",\"p\",null,{\"children\":[\"As an example, take a raw query that selects columns with \",[\"$\",\"code\",null,{\"children\":\"BigInt\"}],\", \",[\"$\",\"code\",null,{\"children\":\"Bytes\"}],\", \",[\"$\",\"code\",null,{\"children\":\"Decimal\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"Date\"}],\" types from a table:\"]}]\n19c:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"e4:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$19c\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT bigint, bytes, decimal, date FROM \\\"Table\\\";`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"e5:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"\u003csvg viewBox=\\\"0 0 24 24\\\"\u003e\u003cpath d=\\\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\\\" fill=\\\"currentColor\\\" /\u003e\u003c/svg\u003e\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{ \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"bigint:\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" BigInt\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"\\\"123\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\",\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" bytes:\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" \u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"Buffer\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" 01\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" 0\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"2\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"), decimal: Decimal(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"\\\"12.34\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"), date: Date(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"\\\"\u003csome_date\u003e\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\") }\"}]]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"e6:[\"$\",\"p\",null,{\"children\":[\"In the \",[\"$\",\"code\",null,{\"children\":\"result\"}],\" object, the database values have been mapped to the corresponding JavaScript types.\"]}]\ne7:[\"$\",\"p\",null,{\"children\":\"The following table shows the conversion between types used in the database and the JavaScript type returned by the raw query:\"}]\n"])</script><script>self.__next_f.push([1,"e8:[\"$\",\"div\",null,{\"className\":\"relative w-full overflow-auto\",\"children\":[\"$\",\"table\",null,{\"ref\":\"$undefined\",\"className\":\"w-full caption-bottom type-text-sm\",\"children\":[[\"$\",\"thead\",null,{\"ref\":\"$undefined\",\"className\":\"[\u0026_tr]:border-b\",\"children\":[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"th\",null,{\"ref\":\"$undefined\",\"className\":\"h-10 px-3 py-4 text-left align-middle type-text-sm-strong text-foreground-neutral [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] only:text-xl bg-background-neutral-weaker\",\"children\":\"Database type\"}],[\"$\",\"th\",null,{\"ref\":\"$undefined\",\"className\":\"h-10 px-3 py-4 text-left align-middle type-text-sm-strong text-foreground-neutral [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] only:text-xl bg-background-neutral-weaker\",\"children\":\"JavaScript type\"}]]}]}],[\"$\",\"tbody\",null,{\"ref\":\"$undefined\",\"className\":\"[\u0026_tr:last-child]:border-0\",\"children\":[[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"Text\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"String\"}]}]]}],[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"32-bit integer\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"Number\"}]}]]}],[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"32-bit unsigned integer\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"BigInt\"}]}]]}],[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"Floating point number\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"Number\"}]}]]}],[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"Double precision number\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"Number\"}]}]]}],[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"64-bit integer\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"$L19d\"}]]}],\"$L19e\",\"$L19f\",\"$L1a0\",\"$L1a1\",\"$L1a2\",\"$L1a3\",\"$L1a4\",\"$L1a5\"]}]]}]}]\n"])</script><script>self.__next_f.push([1,"e9:[\"$\",\"p\",null,{\"children\":[\"Note that the exact name for each database type will vary between databases – for example, the boolean type is known as \",[\"$\",\"code\",null,{\"children\":\"boolean\"}],\" in PostgreSQL and \",[\"$\",\"code\",null,{\"children\":\"STRING\"}],\" in CockroachDB. See the \",\"$L1a6\",\" for full details of type names for each database.\"]}]\nea:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"raw-query-typecasting-behavior\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#raw-query-typecasting-behavior\",\"className\":\"peer\",\"children\":\"Raw query typecasting behavior\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\neb:[\"$\",\"p\",null,{\"children\":\"Raw queries with Prisma Client might require parameters to be in the expected types of the SQL function or query. Prisma Client does not do subtle, implicit casts.\"}]\nec:[\"$\",\"p\",null,{\"children\":[\"As an example, take the following query using PostgreSQL's \",[\"$\",\"code\",null,{\"children\":\"LENGTH\"}],\" function, which only accepts the \",[\"$\",\"code\",null,{\"children\":\"text\"}],\" type as an input:\"]}]\n1a7:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003eed:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1a7\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT LENGTH(${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"42\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"});`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]}]}]}]\nee:[\"$\",\"p\",null,{\"children\":\"This query returns an error:\"}]\n"])</script><script>self.__next_f.push([1,"ef:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"\u003csvg viewBox=\\\"0 0 24 24\\\"\u003e\u003cpath d=\\\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\\\" fill=\\\"currentColor\\\" /\u003e\u003c/svg\u003e\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"//\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" ERROR:\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" function\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" length\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"integer\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\") \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"does\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" not\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" exist\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"//\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" HINT:\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" No\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" function\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" matches\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" the\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" given\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" and\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" argument\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" types.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" You\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" might\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" need\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" to\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" add\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" explicit\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" type\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" casts.\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"f0:[\"$\",\"p\",null,{\"children\":[\"The solution in this case is to explicitly cast \",[\"$\",\"code\",null,{\"children\":\"42\"}],\" to the \",[\"$\",\"code\",null,{\"children\":\"text\"}],\" type:\"]}]\n1a8:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003ef1:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1a8\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT LENGTH(${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"42\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}::text);`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]}]}]}]\nf2:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"transactions\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#transactions\",\"className\":\"peer\",\"children\":\"Transactions\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\nf3:[\"$\",\"p\",null,{\"children\":[\"You can use \",[\"$\",\"code\",null,{\"children\":\".$executeRaw()\"}],\" and \",[\"$\",\"code\",null,{\"children\":\".$queryRaw()\"}],\" inside a \",\"$L1a9\",\".\"]}]\nf4:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"using-variables\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#using-variables\",\"className\":\"peer\",\"children\":\"Using variables\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 "])</script><script>self.__next_f.push([1,"13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\nf5:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" are implemented as \",\"$L1aa\",\". Tagged templates are the recommended way to use variables with raw SQL in the Prisma Client.\"]}]\nf6:[\"$\",\"p\",null,{\"children\":[\"The following example includes a placeholder named \",[\"$\",\"code\",null,{\"children\":\"$${userId}\"}],\":\"]}]\n1ab:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"f7:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1ab\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" userId\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" 42\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM User WHERE id = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"userId\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"};`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"f8:[\"$\",\"p\",null,{\"children\":[\"✔ Benefits of using the tagged template versions of \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" include:\"]}]\nf9:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"Prisma Client escapes all variables.\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Tagged templates are database-agnostic - you do not need to remember if variables should be written as \",[\"$\",\"code\",null,{\"children\":\"$$1\"}],\" (PostgreSQL) or \",[\"$\",\"code\",null,{\"children\":\"?\"}],\" (MySQL).\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"$L1ac\",\" give you access to \",\"$L1ad\",\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Embedded, named variables are easier to read.\"}],\"\\n\"]}]\nfa:[\"$\",\"blockquote\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note\"}],\": You cannot pass a table or column name into a tagged template placeholder. For example, you cannot \",[\"$\",\"code\",null,{\"children\":\"SELECT ?\"}],\" and pass in \",[\"$\",\"code\",null,{\"children\":\"*\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"id, name\"}],\" based on some condition.\"]}],\"\\n\"]}]\nfb:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"tagged-template-helpers\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#tagged-template-helpers\",\"className\":\"peer\",\"children\":\"Tagged template helpers\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\nfc:[\"$\",\"p\",null,{\"children\":[\"Prisma Client specifically uses \",\"$L1ae\",\", which exposes a number of helpers. For example, the following query uses \",[\"$\",\"code\",null,{\"children\":\"join()\"}],\" to pass in a list of IDs:\"]}]\n1af:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"fd:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1af\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" { Prisma } \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"from\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"@prisma/client\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" ids\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" [\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"1\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"3\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"5\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"10\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"20\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"];\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM User WHERE id IN (${\"}],\"$L1b0\",\"$L1b1\",\"$L1b2\",\"$L1b3\",\"$L1b4\",\"$L1b5\",\"$L1b6\",\"$L1b7\"]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"fe:[\"$\",\"p\",null,{\"children\":[\"The following example uses the \",[\"$\",\"code\",null,{\"children\":\"empty\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"sql\"}],\" helpers to change the query depending on whether \",[\"$\",\"code\",null,{\"children\":\"userName\"}],\" is empty:\"]}]\n1b8:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"ff:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1b8\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" { Prisma } \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"from\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"@prisma/client\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" userName\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM User ${\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  userName\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" ?\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" Prisma\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\".\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"sql\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`WHERE name = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"userName\"}],\"$L1b9\",\"$L1ba\",\"$L1bb\",\"$L1bc\",\"$L1bd\",\"$L1be\"]}],\"\\n\",\"$L1bf\"]}]}]}]\n"])</script><script>self.__next_f.push([1,"100:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"alter-limitation-postgresql\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#alter-limitation-postgresql\",\"className\":\"peer\",\"children\":[[\"$\",\"code\",null,{\"children\":\"ALTER\"}],\" limitation (PostgreSQL)\"]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n101:[\"$\",\"p\",null,{\"children\":[\"PostgreSQL \",\"$L1c0\",\", which means that the following queries \",[\"$\",\"strong\",null,{\"children\":\"will not work\"}],\":\"]}]\n1c1:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"102:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1c1\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`ALTER USER prisma WITH PASSWORD \\\"${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"password\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}\\\"`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(Prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"sql\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`ALTER USER prisma WITH PASSWORD \\\"${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"password\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}\\\"`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"103:[\"$\",\"p\",null,{\"children\":[\"You can use the following query, but be aware that this is potentially \",[\"$\",\"strong\",null,{\"children\":\"unsafe\"}],\" as \",[\"$\",\"code\",null,{\"children\":\"$${password}\"}],\" is not escaped:\"]}]\n1c2:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e104:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1c2\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRawUnsafe\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'ALTER USER prisma WITH PASSWORD \\\"$1\\\"'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", password})\"}]]}]}]}]}]\n105:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"unsupported-types\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#unsupported-types\",\"className\":\"peer\",\"children\":\"Unsupported types\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n106:[\"$\",\"p\",null,{\"children\":[\"$L1c3\",\" need to be cast to Prisma Client supported types before using them in \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\". For example, take the following model, which has a \",[\"$\",\"code\",null,{\"children\":\"location\"}],\" field with an \",[\"$\",\"code\",null,{\"children\":\"Unsupported\"}],\" type:\"]}]\n1c4:Tb41,"])</script><script>self.__next_f.push([1,"\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"107:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1c4\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"model Country {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$L1c5\",\"$L1c6\",\"$L1c7\",\"$L1c8\",\"$L1c9\",\"$L1ca\"]}],\"\\n\",\"$L1cb\"]}]}]}]\n108:[\"$\",\"p\",null,{\"children\":[\"The following query on the unsupported field will \",[\"$\",\"strong\",null,{\"children\":\"not\"}],\" work:\"]}]\n1cc:Tb41,"])</script><script>self.__next_f.push([1,"\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"109:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1cc\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],\"$L1cd\",\"$L1ce\",\"$L1cf\"]}]}]}]}]\n10a:[\"$\",\"p\",null,{\"children\":[\"Instead, cast \",[\"$\",\"code\",null,{\"children\":\"Unsupported\"}],\" fields to any supported Prisma Client type, \",[\"$\",\"strong\",null,{\"children\":[\"if your \",[\"$\",\"code\",null,{\"children\":\"Unsupported\"}],\" column supports the cast\"]}],\".\"]}]\n10b:[\"$\",\"p\",null,{\"children\":[\"The most common type you may want to cast your \",[\"$\",\"code\",null,{\"children\":\"Unsupported\"}],\" column to is \",[\"$\",\"code\",null,{\"children\":\"String\"}],\". For example, on PostgreSQL, this would map to the \",[\"$\",\"code\",null,{\"children\":\"text\"}],\" type:\"]}]\n1d0:Tb41,"])</script><script>self.__next_f.push([1,"\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"10c:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1d0\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],\"$L1d1\",\"$L1d2\",\"$L1d3\"]}]}]}]}]\n10d:[\"$\",\"p\",null,{\"children\":[\"The database will thus provide a \",[\"$\",\"code\",null,{\"children\":\"String\"}],\" representation of your data which Prisma Client supports.\"]}]\n10e:[\"$\",\"p\",null,{\"children\":[\"For details of supported Prisma types, see the \",\"$L1d4\",\" for the relevant database.\"]}]\n10f:[\"$\",\"h2\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"sql-injection-prevention\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#sql-injection-prevention\",\"className\":\"peer\",\"children\":\"SQL injection prevention\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n110:[\"$\",\"p\",null,{\"children\":\"The ideal way to avoid SQL injection in Prisma Client is to use the ORM models to perform queries wherever possible.\"}]\n111:[\"$\",\"p\",null,{\"children\":\"Where this is not possible and raw queries are required, Prisma Client provides various raw methods, but it is important to use these methods safely.\"}]\n112:[\"$\",\"p\",null,{\"children\":[\"This section will provide various examples of using these methods safely and unsafely. You can test these examples in the \",\"$L1d5\",\".\"]}]\n113:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"in-queryraw-and-executeraw\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#in-queryraw-and-executeraw\",\"className\":\"peer\",\"children\":[\"In \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}]]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n114:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"simple-safe-use-of-queryraw-and-executeraw\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#simple-safe-use-of-queryraw-and-executeraw\",\"className\":\"peer\",\"children\":[\"Simple, safe use of \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}]]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n115:[\"$\",\"p\",null,{\"c"])</script><script>self.__next_f.push([1,"hildren\":\"These methods can mitigate the risk of SQL injection by escaping all variables when you use tagged templates and sends all queries as prepared statements.\"}]\n1d6:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e116:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1d6\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`...`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"; \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Tagged template\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`...`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"; \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Tagged template\"}]]}]]}]}]}]\n117:[\"$\",\"p\",null,{\"children\":\"The following example is safe ✅ from SQL Injection:\"}]\n1d7:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"118:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1d7\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `'Sarah' UNION SELECT id, title FROM \\\"Post\\\"`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT id, name FROM \\\"User\\\" WHERE name = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"119:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"unsafe-use-of-queryraw-and-executeraw\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#unsafe-use-of-queryraw-and-executeraw\",\"className\":\"peer\",\"children\":[\"Unsafe use of \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}]]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n11a:[\"$\",\"p\",null,{\"children\":\"However, it is also possible to use these methods in unsafe ways.\"}]\n11b:[\"$\",\"p\",null,{\"children\":\"One way is by artificially generating a tagged template that unsafely concatenates user input.\"}]\n11c:[\"$\",\"p\",null,{\"children\":\"The following example is vulnerable ❌ to SQL Injection:\"}]\n1d8:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"11d:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1d8\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Unsafely generate query text\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `'Sarah' UNION SELECT id, title FROM \\\"Post\\\"`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"; \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// SQL Injection\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `SELECT id, name FROM \\\"User\\\" WHERE name = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Version for Typescript\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" stringsArray\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" any\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" [\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"...\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"[query]];\"}]]}],\"\\n\",\"$L1d9\",\"\\n\",\"$L1da\",\"\\n\",\"$L1db\",\"\\n\",\"$L1dc\",\"\\n\",\"$L1dd\",\"\\n\",\"$L1de\",\"\\n\",\"$L1df\",\"\\n\",\"$L1e0\",\"\\n\",\"$L1e1\",\"\\n\",\"$L1e2\"]}]}]}]\n"])</script><script>self.__next_f.push([1,"11e:[\"$\",\"p\",null,{\"children\":[\"Another way to make these methods vulnerable is misuse of the \",[\"$\",\"code\",null,{\"children\":\"Prisma.raw\"}],\" function.\"]}]\n11f:[\"$\",\"p\",null,{\"children\":\"The following examples are all vulnerable ❌ to SQL Injection:\"}]\n1e3:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"120:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1e3\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `'Sarah' UNION SELECT id, title FROM \\\"Post\\\"`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT id, name FROM \\\"User\\\" WHERE name = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"Prisma\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\".\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"raw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"(\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\")\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"1e4:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"121:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1e4\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `'Sarah' UNION SELECT id, title FROM \\\"Post\\\"`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  Prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"raw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT id, name FROM \\\"User\\\" WHERE name = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"),\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"1e5:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"122:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1e5\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `'Sarah' UNION SELECT id, title FROM \\\"Post\\\"`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" Prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"raw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT id, name FROM \\\"User\\\" WHERE name = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(query);\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],\"$L1e6\"]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"123:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"safely-using-queryraw-and-executeraw-in-more-complex-scenarios\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#safely-using-queryraw-and-executeraw-in-more-complex-scenarios\",\"className\":\"peer\",\"children\":[\"Safely using \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRaw\"}],\" in more complex scenarios\"]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n124:[\"$\",\"h5\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"building-raw-queries-separate-to-query-execution\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#building-raw-queries-separate-to-query-execution\",\"className\":\"peer\",\"children\":\"Building raw queries separate to query execution\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n125:[\"$\",\"p\",null,{\"children\":\"If you want to build your raw queries elsewhere or separate to your parameters you will need to use one of the following methods.\"}]\n126:[\"$\",\"p\",null,{\"children\":[\"In this example, the \",[\"$\",\"code\",null,{\"children\":\"sql\"}],\" helper method is used to build the query text by safely including the variable. It is safe ✅ from SQL Injection:\"]}]\n1e7:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"127:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1e7\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// inputString can be untrusted input\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `'Sarah' UNION SELECT id, title FROM \\\"Post\\\"`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Safe if the text query below is completely trusted content\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" Prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"sql\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT id, name FROM \\\"User\\\" WHERE name = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],\"$L1e8\"]}],\"\\n\",\"$L1e9\"]}]}]}]\n"])</script><script>self.__next_f.push([1,"128:[\"$\",\"p\",null,{\"children\":[\"In this example which is safe ✅ from SQL Injection, the \",[\"$\",\"code\",null,{\"children\":\"sql\"}],\" helper method is used to build the query text including a parameter marker for the input value. Each variable is represented by a marker symbol (\",[\"$\",\"code\",null,{\"children\":\"?\"}],\" for MySQL, \",[\"$\",\"code\",null,{\"children\":\"$$1\"}],\", \",[\"$\",\"code\",null,{\"children\":\"$$2\"}],\", and so on for PostgreSQL). Note that the examples just show PostgreSQL queries.\"]}]\n1ea:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"129:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1ea\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Version for Typescript\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" any\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Version for Javascript\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Safe if the text query below is completely trusted content\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"query \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" Prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"sql\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT id, name FROM \\\"User\\\" WHERE name = $1`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// inputString can be untrusted input\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString\"}],\"$L1eb\",\"$L1ec\",\"$L1ed\"]}],\"\\n\",\"$L1ee\",\"\\n\",\"$L1ef\",\"\\n\",\"$L1f0\",\"\\n\",\"$L1f1\"]}]}]}]\n"])</script><script>self.__next_f.push([1,"12a:[\"$\",\"blockquote\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note\"}],\": PostgreSQL variables are represented by \",[\"$\",\"code\",null,{\"children\":\"$$1\"}],\", etc\"]}],\"\\n\"]}]\n12b:[\"$\",\"h5\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"building-raw-queries-elsewhere-or-in-stages\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#building-raw-queries-elsewhere-or-in-stages\",\"className\":\"peer\",\"children\":\"Building raw queries elsewhere or in stages\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n12c:[\"$\",\"p\",null,{\"children\":[\"If you want to build your raw queries somewhere other than where the query is executed, the ideal way to do this is to create an \",[\"$\",\"code\",null,{\"children\":\"Sql\"}],\" object from the segments of your query and pass it the parameter value.\"]}]\n12d:[\"$\",\"p\",null,{\"children\":[\"In the following example we have two variables to parameterize. The example is safe ✅ from SQL Injection as long as the query strings being passed to \",[\"$\",\"code\",null,{\"children\":\"Prisma.sql\"}],\" only contain trusted content:\"]}]\n1f2:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"12e:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1f2\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Example is safe if the text query below is completely trusted content\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query1\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `SELECT id, name FROM \\\"User\\\" WHERE name = `\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"; \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// The first parameter would be inserted after this string\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query2\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" ` OR name = `\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"; \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// The second parameter would be inserted after this string\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString1\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Fred\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString2\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],\"$L1f3\",\"$L1f4\"]}],\"\\n\",\"$L1f5\",\"\\n\",\"$L1f6\",\"\\n\",\"$L1f7\",\"\\n\",\"$L1f8\"]}]}]}]\n"])</script><script>self.__next_f.push([1,"12f:[\"$\",\"blockquote\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Note: Notice that the string array being passed as the first parameter \",[\"$\",\"code\",null,{\"children\":\"Prisma.sql\"}],\" needs to have an empty string at the end as the \",[\"$\",\"code\",null,{\"children\":\"sql\"}],\" function expects one more query segment than the number of parameters.\"]}],\"\\n\"]}]\n130:[\"$\",\"p\",null,{\"children\":[\"If you want to build your raw queries into one large string, this is still possible but requires some care as it is uses the potentially dangerous \",[\"$\",\"code\",null,{\"children\":\"Prisma.raw\"}],\" method. You also need to build your query using the correct parameter markers for your database as Prisma won't be able to provide markers for the relevant database as it usually is.\"]}]\n131:[\"$\",\"p\",null,{\"children\":[\"The following example is safe ✅ from SQL Injection as long as the query strings being passed to \",[\"$\",\"code\",null,{\"children\":\"Prisma.raw\"}],\" only contain trusted content:\"]}]\n1f9:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"132:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$1f9\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Version for Typescript\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" any\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Version for Javascript\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Example is safe if the text query below is completely trusted content\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query1\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `SELECT id, name FROM \\\"User\\\" `\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query2\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `WHERE name = $1 `\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",\"$L1fa\",\"\\n\",\"$L1fb\",\"\\n\",\"$L1fc\",\"\\n\",\"$L1fd\",\"\\n\",\"$L1fe\",\"\\n\",\"$L1ff\",\"\\n\",\"$L200\",\"\\n\",\"$L201\",\"\\n\",\"$L202\"]}]}]}]\n"])</script><script>self.__next_f.push([1,"133:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"in-queryrawunsafe-and-executerawunsafe\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#in-queryrawunsafe-and-executerawunsafe\",\"className\":\"peer\",\"children\":[\"In \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRawUnsafe\"}]]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n134:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"using-queryrawunsafe-and-executerawunsafe-unsafely\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#using-queryrawunsafe-and-executerawunsafe-unsafely\",\"className\":\"peer\",\"children\":[\"Using \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$executeRawUnsafe\"}],\" unsafely\"]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n135:[\"$\",\"p\",null,{\"children\":[\"If you cannot use tagged templates, you can instead use \",\"$L203\",\" or \",\"$L204\",\". However, \",[\"$\",\"strong\",null,{\"children\":\"be aware that these functions significantly increase the risk of SQL injection vulnerabilities in your code\"}],\".\"]}]\n136:[\"$\",\"p\",null,{\"children\":[\"The following example concatenates \",[\"$\",\"code\",null,{\"children\":\"query\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"inputString\"}],\". Prisma Client ❌ \",[\"$\",\"strong\",null,{\"children\":\"cannot\"}],\" escape \",[\"$\",\"code\",null,{\"children\":\"inputString\"}],\" in this example, which makes it vulnerable to SQL injection:\"]}]\n205:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"137:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$205\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" '\\\"Sarah\\\" UNION SELECT id, title, content FROM Post'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"; \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// SQL Injection\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"SELECT id, name, email FROM User WHERE name = \\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" +\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" inputString;\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRawUnsafe\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(query);\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"138:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"parameterized-queries\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#parameterized-queries\",\"className\":\"peer\",\"children\":\"Parameterized queries\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n139:[\"$\",\"p\",null,{\"children\":[\"As an alternative to tagged templates, \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\" supports standard parameterized queries where each variable is represented by a symbol (\",[\"$\",\"code\",null,{\"children\":\"?\"}],\" for MySQL, \",[\"$\",\"code\",null,{\"children\":\"$$1\"}],\", \",[\"$\",\"code\",null,{\"children\":\"$$2\"}],\", and so on for PostgreSQL). Note that the examples just show PostgreSQL queries.\"]}]\n13a:[\"$\",\"p\",null,{\"children\":\"The following example is safe ✅ from SQL Injection:\"}]\n206:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"13b:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$206\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" userName\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Sarah\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" email\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"sarah@prisma.io\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRawUnsafe\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"  \\\"SELECT * FROM User WHERE (name = $1 OR email = $2)\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  userName,\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  email,\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"13c:[\"$\",\"blockquote\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note\"}],\": PostgreSQL variables are represented by \",[\"$\",\"code\",null,{\"children\":\"$$1\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$2\"}]]}],\"\\n\"]}]\n13d:[\"$\",\"p\",null,{\"children\":\"As with tagged templates, Prisma Client escapes all variables when they are provided in this way.\"}]\n13e:[\"$\",\"blockquote\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note\"}],\": You cannot pass a table or column name as a variable into a parameterized query. For example, you cannot \",[\"$\",\"code\",null,{\"children\":\"SELECT ?\"}],\" and pass in \",[\"$\",\"code\",null,{\"children\":\"*\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"id, name\"}],\" based on some condition.\"]}],\"\\n\"]}]\n13f:[\"$\",\"h5\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"parameterized-postgresql-ilike-query\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#parameterized-postgresql-ilike-query\",\"className\":\"peer\",\"children\":[\"Parameterized PostgreSQL \",[\"$\",\"code\",null,{\"children\":\"ILIKE\"}],\" query\"]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n140:[\"$\",\"p\",null,{\"children\":[\"When you use \",[\"$\",\"code\",null,{\"children\":\"ILIKE\"}],\", the \",[\"$\",\"code\",null,{\"children\":\"%\"}],\" wildcard character(s) should be included in the variable itself, not the query (\",[\"$\",\"code\",null,{\"children\":\"string\"}],\"). This example is safe ✅ from SQL Injection.\"]}]\n207:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"141:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$207\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" userName\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Sarah\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" emailFragment\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"prisma.io\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRawUnsafe\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"  'SELECT * FROM \\\"User\\\" WHERE (name = $1 OR email ILIKE $2)'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  userName,\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"  `%${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"emailFragment\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],\"$L208\"]}],\"\\n\",\"$L209\"]}]}]}]\n"])</script><script>self.__next_f.push([1,"142:[\"$\",\"blockquote\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note\"}],\": Using \",[\"$\",\"code\",null,{\"children\":\"%$2\"}],\" as an argument would not work\"]}],\"\\n\"]}]\n143:[\"$\",\"h2\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"raw-queries-with-mongodb\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#raw-queries-with-mongodb\",\"className\":\"peer\",\"children\":\"Raw queries with MongoDB\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n144:[\"$\",\"p\",null,{\"children\":\"For MongoDB, Prisma Client exposes three methods that allow you to send raw queries. You can use:\"}]\n145:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$runCommandRaw\"}],\" to run a command against the database\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"\u003cmodel\u003e.findRaw\"}],\" to find zero or more documents that match the filter.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"\u003cmodel\u003e.aggregateRaw\"}],\" to perform aggregation operations on a collection.\"]}],\"\\n\"]}]\n146:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"runcommandraw\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#runcommandraw\",\"className\":\"peer\",\"children\":[\"$\",\"code\",null,{\"children\":\"$$runCommandRaw()\"}]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n147:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$runCommandRaw()\"}],\" runs a raw MongoDB command against the database. As input, it accepts all \",\"$L20a\",\", with the following exceptions:\"]}]\n148:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"find\"}],\" (use \",\"$L20b\",\" instead)\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"aggregate\"}],\" (use \",\"$L20c\",\" instead)\"]}],\"\\n\"]}]\n149:[\"$\",\"p\",null,{\"children\":[\"When you use \",[\"$\",\"code\",null,{\"children\":\"$$runCommandRaw()\"}],\" to run a MongoDB database command, note the following:\"]}]\n14a:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[\"The object that you pass when you invoke \",[\"$\",\"code\",null,{\"children\":\"$$runCommandRaw()\"}],\" must follow the syntax of the MongoDB database command.\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"You must connect to the database with an appropriate role for the MongoDB database command.\"}],\"\\n\"]}]\n14b:[\"$\",\"p\",null,{\"children\":[\"In the following example, a query inserts two records with the same \",[\"$\",\"code\",null,{\"children\":\"_id\"}],\". This bypasses normal document validation.\"]}]\n20d:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135."])</script><script>self.__next_f.push([1,"582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"14c:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$20d\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$runCommandRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"({\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  insert: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Pets\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  bypassDocumentValidation: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"true\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  documents: [\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"      _id: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"1\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"      name: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Felinecitas\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"      type: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Cat\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"      breed: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Russian Blue\\\"\"}],\"$L20e\"]}],\"\\n\",\"$L20f\",\"\\n\",\"$L210\",\"\\n\",\"$L211\",\"\\n\",\"$L212\",\"\\n\",\"$L213\",\"\\n\",\"$L214\",\"\\n\",\"$L215\",\"\\n\",\"$L216\",\"\\n\",\"$L217\",\"\\n\",\"$L218\",\"\\n\",\"$L219\"]}]}]}]\n"])</script><script>self.__next_f.push([1,"14d:[\"$\",\"div\",null,{\"ref\":\"$undefined\",\"role\":\"alert\",\"className\":\"relative w-full rounded-md border p-4 gap-3 type-text-sm [\u0026\u003esvg]:left-4 [\u0026\u003esvg]:top-4 [\u0026\u003esvg]:w-5 [\u0026\u003esvg]:h-5 alert-alert flex items-start [\u0026\u003ei]:mt-0.5 bg-background-warning border-none text-foreground-warning [\u0026\u003esvg]:text-foreground-warning\",\"children\":[[\"$\",\"i\",null,{\"className\":\"fa-duotone fa-solid fa-circle-exclamation\"}],[\"$\",\"div\",null,{\"className\":\"[\u0026\u003e*]:first:mt-0 [\u0026\u003e*]:last:mb-0 [\u0026 strong]:text-inherit\",\"children\":[\"$\",\"p\",null,{\"children\":[\"Do not use \",[\"$\",\"code\",null,{\"children\":\"$$runCommandRaw()\"}],\" for queries which contain the \",[\"$\",\"code\",null,{\"children\":\"\\\"find\\\"\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"\\\"aggregate\\\"\"}],\" commands, because you might be unable to fetch all data. This is because MongoDB returns a \",\"$L21a\",\" that is attached to your MongoDB session, and you might not hit the same MongoDB session every time. For these queries, you should use the specialised \",\"$L21b\",\" and \",\"$L21c\",\" methods instead.\"]}]}]]}]\n14e:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"return-type-2\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#return-type-2\",\"className\":\"peer\",\"children\":\"Return type\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n14f:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$runCommandRaw()\"}],\" returns a \",[\"$\",\"code\",null,{\"children\":\"JSON\"}],\" object whose shape depends on the inputs.\"]}]\n150:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"signature-4\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#signature-4\",\"className\":\"peer\",\"children\":\"Signature\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n21d:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e151:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes g"])</script><script>self.__next_f.push([1,"ithub-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$21d\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$runCommandRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(command: InputJsonObject): PrismaPromise\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"JsonObject\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]}]}]}]\n152:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"findraw\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#findraw\",\"className\":\"peer\",\"children\":[\"$\",\"code\",null,{\"children\":\"findRaw()\"}]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n153:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"\u003cmodel\u003e.findRaw()\"}],\" returns actual database records. It will find zero or more documents that match the filter on the \",[\"$\",\"code\",null,{\"children\":\"User\"}],\" collection:\"]}]\n21e:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"154:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$21e\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.user.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"findRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"({\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  filter: { age: { $gt: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"25\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" } },\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  options: { projection: { _id: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"false\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" } },\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"});\"}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"155:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"return-type-3\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#return-type-3\",\"className\":\"peer\",\"children\":\"Return type\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n156:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"\u003cmodel\u003e.findRaw()\"}],\" returns a \",[\"$\",\"code\",null,{\"children\":\"JSON\"}],\" object whose shape depends on the inputs.\"]}]\n157:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"signature-5\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#signature-5\",\"className\":\"peer\",\"children\":\"Signature\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n21f:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"158:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$21f\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"model\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003e.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"findRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(args\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"?:\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {filter?: InputJsonObject, options?: InputJsonObject}): PrismaPromise\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"JsonObject\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"159:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"filter\"}],\": The query predicate filter. If unspecified, then all documents in the collection will match the \",\"$L220\",\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"options\"}],\": Additional options to pass to the \",\"$L221\",\".\"]}],\"\\n\"]}]\n15a:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"aggregateraw\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#aggregateraw\",\"className\":\"peer\",\"children\":[\"$\",\"code\",null,{\"children\":\"aggregateRaw()\"}]}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n15b:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"\u003cmodel\u003e.aggregateRaw()\"}],\" returns aggregated database records. It will perform aggregation operations on the \",[\"$\",\"code\",null,{\"children\":\"User\"}],\" collection:\"]}]\n222:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"15c:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$222\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.user.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"aggregateRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"({\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  pipeline: [\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    { $match: { status: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"registered\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" } },\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    { $group: { _id: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"$country\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", total: { $sum: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"1\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" } } },\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  ],\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"});\"}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"15d:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"return-type-4\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#return-type-4\",\"className\":\"peer\",\"children\":\"Return type\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n15e:[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"\u003cmodel\u003e.aggregateRaw()\"}],\" returns a \",[\"$\",\"code\",null,{\"children\":\"JSON\"}],\" object whose shape depends on the inputs.\"]}]\n15f:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"signature-6\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#signature-6\",\"className\":\"peer\",\"children\":\"Signature\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n223:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"160:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$223\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"model\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"\u003e.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"aggregateRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(args\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"?:\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {pipeline?: InputJsonObject[], options?: InputJsonObject}): PrismaPromise\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003c\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"JsonObject\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"161:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"pipeline\"}],\": An array of aggregation stages to process and transform the document stream via the \",\"$L224\",\".\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"options\"}],\": Additional options to pass to the \",\"$L225\",\".\"]}],\"\\n\"]}]\n162:[\"$\",\"h4\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"caveats\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#caveats\",\"className\":\"peer\",\"children\":\"Caveats\"}],[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true,\"children\":[[\"$\",\"path\",\"1cjeqo\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"}],[\"$\",\"path\",\"19qd67\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"}],\"$undefined\"]}]]}]\n163:[\"$\",\"p\",null,{\"children\":[\"When working with custom objects like \",[\"$\",\"code\",null,{\"children\":\"ObjectId\"}],\" or \",[\"$\",\"code\",null,{\"children\":\"Date,\"}],\" you will have to pass them according to the \",\"$L226\",\".\\nExample:\"]}]\n227:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"164:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$227\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.user.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"aggregateRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"({\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  pipeline: [\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    { $match: { _id: { $oid: id } } },\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"    //                     ^ notice the $oid convention here\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  ],\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"});\"}]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"165:[\"$\",\"div\",null,{\"className\":\"flex flex-row flex-wrap items-center justify-between gap-4 border-t pt-6 text-sm\",\"children\":[[\"$\",\"a\",null,{\"target\":\"_blank\",\"rel\":\"noreferrer noopener\",\"href\":\"https://github.com/prisma/docs/edit/main/apps/docs/content/docs/orm/prisma-client/using-raw-sql/raw-queries.mdx\",\"className\":\"inline-flex items-center justify-center rounded-md p-2 font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring border bg-fd-secondary text-fd-secondary-foreground hover:bg-fd-accent hover:text-fd-accent-foreground px-2 py-1.5 text-xs gap-1.5 not-prose\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-square-pen size-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1m0v6g\",{\"d\":\"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"}],[\"$\",\"path\",\"ohrbg2\",{\"d\":\"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z\"}],\"$undefined\"]}],[\"$\",\"$L228\",null,{\"label\":\"editOnGithub\"}]]}],\"$undefined\"]}]\n166:[\"$\",\"$L229\",null,{}]\n167:[\"$\",\"div\",null,{\"id\":\"nd-toc\",\"className\":\"sticky top-(--fd-docs-row-3) [grid-area:toc] h-[calc(var(--fd-docs-height)-var(--fd-docs-row-3))] flex flex-col w-(--fd-toc-width) pt-12 pe-4 pb-2 xl:layout:[--fd-toc-width:268px] max-xl:hidden\",\"children\":[\"$undefined\",[\"$\",\"h3\",null,{\"id\":\"toc-title\",\"className\":\"inline-flex items-center gap-1.5 text-sm text-fd-muted-foreground\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-text-align-start size-4\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1fi0y6\",{\"d\":\"M21 5H3\"}],[\"$\",\"path\",\"6jk70r\",{\"d\":\"M15 12H3\"}],[\"$\",\"path\",\"z6ezky\",{\"d\":\"M17 19H3\"}],\"$undefined\"]}],[\"$\",\"$L228\",null,{\"label\":\"toc\"}]]}],[\"$\",\"$L91\",null,{\"children\":[\"$\",\"$L92\",null,{}]}],\"$undefined\"]}]\n95:[\"$\",\"$L22a\",null,{\"href\":\"/orm/prisma-client/using-raw-sql\",\"children\":\"TypedSQL\"}]\n96:[\"$\",\"$L22a\",null,{\"href\":\"https://github.com/prisma/prisma/issues/new/choose\",\"children\":\"consider raising an issue\"}]\n97:[\"$\",\"$L22a\",null,{\"href\":\"#raw-queries-with-relational-databases\",\"children\":\"Raw queries with relational databases\"}]\n98:[\"$\",\"$L22a\",null,{\"href\":\"#raw-queries-with-mongodb\",\"children\":\"Raw queries with MongoDB\"}]\n"])</script><script>self.__next_f.push([1,"174:[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"My name is Bob\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"};`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"22b:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"175:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$22b\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Bob\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT 'My name is ' || ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"};`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"22c:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e22d:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"176:[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Template variables can only be used for data values (such as \",[\"$\",\"code\",null,{\"children\":\"email\"}],\" in the example above). Variables cannot be used for identifiers such as column names, table names or database names, or for SQL keywords. For example, the following two queries would \",[\"$\",\"strong\",null,{\"children\":\"not\"}],\" work:\"]}],\"\\n\",[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$22c\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" myTable\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"user\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"myTable\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"};`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]}],\"\\n\",[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$22d\",\"children\":\"$L22e\"}],\"\\n\"]}]\n"])</script><script>self.__next_f.push([1,"177:[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Prisma maps any database values returned by \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" and \",[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}],\" to their corresponding JavaScript types. \",\"$L22f\",\".\"]}],\"\\n\"]}]\n178:[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}],\" does not support dynamic table names in PostgreSQL databases. \",\"$L230\"]}],\"\\n\"]}]\n"])</script><script>self.__next_f.push([1,"192:[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"My name is Bob\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`UPDATE user SET greeting = ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"};`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"231:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"193:[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$231\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Bob\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`UPDATE user SET greeting = 'My name is ' || ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"name\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"};`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]}]\n"])</script><script>self.__next_f.push([1,"232:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e233:T4dc,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script><script>self.__next_f.push([1,"194:[\"$\",\"li\",null,{\"children\":[\"\\n\",[\"$\",\"p\",null,{\"children\":[\"Template variables can only be used for data values (such as \",[\"$\",\"code\",null,{\"children\":\"email\"}],\" in the example above). Variables cannot be used for identifiers such as column names, table names or database names, or for SQL keywords. For example, the following two queries would \",[\"$\",\"strong\",null,{\"children\":\"not\"}],\" work:\"]}],\"\\n\",[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$232\",\"children\":[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" myTable\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"user\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`UPDATE ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"myTable\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"} SET active = true;`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]}],\"\\n\",[\"$\",\"$L169\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$233\",\"children\":\"$L234\"}],\"\\n\"]}]\n"])</script><script>self.__next_f.push([1,"19d:[\"$\",\"code\",null,{\"children\":\"BigInt\"}]\n19e:[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"Decimal / numeric\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"Decimal\"}]}]]}]\n19f:[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"Bytes\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"Uint8Array\"}]}]]}]\n1a0:[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"Json\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"Object\"}]}]]}]\n1a1:[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"DateTime\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"Date\"}]}]]}]\n1a2:[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"Date\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"Date\"}]}]]}]\n1a3:[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"Time\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"Date\"}]}]]}]\n1a4:[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"Uuid\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"String\"}]}]]}]\n1a5:[\"$\",\"tr\",null,{\"ref\":\"$undefined\",\"className\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"children\":[[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[ro"])</script><script>self.__next_f.push([1,"le=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":\"Xml\"}],[\"$\",\"td\",null,{\"ref\":\"$undefined\",\"className\":\"px-3 py-4 align-middle [\u0026:has([role=checkbox])]:pr-0 [\u0026\u003e[role=checkbox]]:translate-y-[2px] bg-background-default\",\"children\":[\"$\",\"code\",null,{\"children\":\"String\"}]}]]}]\n1b0:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"Prisma\"}]\n1b1:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\".\"}]\n1b2:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"join\"}]\n1b3:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"(\"}]\n1b4:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"ids\"}]\n1b5:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\")\"}]\n1b6:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"})`\"}]\n1b7:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]\n1b9:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}]\n1ba:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" :\"}]\n1bb:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" Prisma\"}]\n1bc:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\".\"}]\n1bd:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"empty\"}]\n1be:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\" // Cannot use \\\"\\\" or NULL here!\"}]\n1bf:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]\n1c5:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  location  \"}]\n1c6:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"Unsupported\"}]\n1c7:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}]\n1c8:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"point\\\"\"}]\n1c9:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}]\n1ca:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"?\"}]\n1cb:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]\n1cd:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}]\n1ce:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT location FROM Country;`\"}]\n1cf:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]\n1d1:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}]\n1d2:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT location::text FROM Country;`\"}]\n1d3:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]\n1d9:[\"$\",\"span\",null,{\"className\":\"line\"}]\n1da:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Version for Javascript\"}]}]\n1db:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" stringsArray\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki"])</script><script>self.__next_f.push([1,"-dark\":\"#E1E4E8\"},\"children\":\" [\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"...\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"[query]];\"}]]}]\n1dc:[\"$\",\"span\",null,{\"className\":\"line\"}]\n1dd:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Use the `raw` property to impersonate a tagged template\"}]}]\n1de:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"stringsArray.raw \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" [query];\"}]]}]\n1df:[\"$\",\"span\",null,{\"className\":\"line\"}]\n1e0:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Use queryRaw\"}]}]\n1e1:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(stringsArray);\"}]]}]\n1e2:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]]}]\n1e6:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]\n1e8:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(query);\"}]\n1e9:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]]}]\n1eb:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}]\n1ec:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `'Sarah' UNION SELECT id, title FROM \\\"Post\\\"`\"}]\n1ed:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]\n1ee:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"query.values \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" [inputString];\"}]]}]\n1ef:[\"$\",\"span\",null,{\"className\":\"line\"}]\n1f0:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$"])</script><script>self.__next_f.push([1,"\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(query);\"}]]}]\n1f1:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]]}]\n1f3:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `'Sarah' UNION SELECT id, title FROM \\\"Post\\\"`\"}]\n1f4:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]\n1f5:[\"$\",\"span\",null,{\"className\":\"line\"}]\n1f6:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" query\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" Prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"sql\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"([query1, query2, \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"], inputString1, inputString2);\"}]]}]\n1f7:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(query);\"}]]}]\n1f8:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]]}]\n1fa:[\"$\",\"span\",null,{\"className\":\"line\"}]\n1fb:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"query \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" Prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"raw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"query1\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"query2\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]\n1fc:[\"$\",\"span\",null,{\"className"])</script><script>self.__next_f.push([1,"\":\"line\"}]\n1fd:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// inputString can be untrusted input\"}]}]\n1fe:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" inputString\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" `'Sarah' UNION SELECT id, title FROM \\\"Post\\\"`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]\n1ff:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"query.values \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" [inputString];\"}]]}]\n200:[\"$\",\"span\",null,{\"className\":\"line\"}]\n201:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" result\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(query);\"}]]}]\n202:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(result);\"}]]}]\n208:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]\n209:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]}]\n20e:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]\n20f:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"      age: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"12\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}]\n210:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    },\"}]}]\n211:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    {\"}]}]\n212:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"      _id: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"1\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}]\n213:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"      name: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Nao Nao\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}]\n214:[\"$\",\"span\",null,{\"cla"])</script><script>self.__next_f.push([1,"ssName\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"      type: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Dog\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}]\n215:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"      breed: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Chow Chow\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}]\n216:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"      age: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"2\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}]\n217:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    },\"}]}]\n218:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  ],\"}]}]\n219:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"});\"}]}]\n168:[\"$\",\"$L22a\",null,{\"href\":\"#sql-injection-prevention\",\"children\":\"SQL injection prevention\"}]\n16c:[\"$\",\"$L22a\",null,{\"href\":\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates\",\"children\":\"tagged template\"}]\n16d:[\"$\",\"$L22a\",null,{\"href\":\"#using-variables\",\"children\":\"variables\"}]\n16f:[\"$\",\"$L22a\",null,{\"href\":\"#tagged-template-helpers\",\"children\":[\"$\",\"code\",null,{\"children\":\"Prisma.sql\"}]}]\n171:[\"$\",\"$L22a\",null,{\"href\":\"#sql-injection-prevention\",\"children\":\"SQL injection prevention\"}]\n"])</script><script>self.__next_f.push([1,"22e:[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" ordering\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"desc\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$queryRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`SELECT * FROM Table ORDER BY ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"ordering\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"};`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"234:[\"$\",\"$L16b\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" ordering\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"desc\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" prisma.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"$$executeRaw\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"`UPDATE User SET active = true ORDER BY ${\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"desc\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"};`\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"179:[\"$\",\"$L22a\",null,{\"href\":\"#typing-queryraw-results\",\"children\":[\"type the results of \",[\"$\",\"code\",null,{\"children\":\"$$queryRaw\"}]]}]\n17b:[\"$\",\"$L22a\",null,{\"href\":\"https://www.typescriptlang.org/docs/handbook/generics.html\",\"children\":[\"generic type parameter \",[\"$\",\"code\",null,{\"children\":\"T\"}]]}]\n17d:[\"$\",\"$L22a\",null,{\"href\":\"/orm/prisma-client/type-safety/operating-against-partial-structures-of-model-types#problem-using-variations-of-the-generated-model-type\",\"children\":\"leveraging Prisma Client's generated types\"}]\n17f:[\"$\",\"$L22a\",null,{\"href\":\"#considerations\",\"children\":\"It is not possible to interpolate table names\"}]\n180:[\"$\",\"$L22a\",null,{\"href\":\"#queryrawunsafe\",\"children\":[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}]}]\n182:[\"$\",\"$L22a\",null,{\"href\":\"#queryrawunsafe\",\"children\":\"Learn more\"}]\n183:[\"$\",\"$L22a\",null,{\"href\":\"#sql-injection-prevention\",\"children\":\"SQL injection prevention\"}]\n186:[\"$\",\"$L22a\",null,{\"href\":\"#parameterized-queries\",\"children\":\"parameterized queries\"}]\n189:[\"$\",\"$L22a\",null,{\"href\":\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates\",\"children\":\"tagged template\"}]\n18a:[\"$\",\"$L22a\",null,{\"href\":\"#using-variables\",\"children\":\"variables\"}]\n18c:[\"$\",\"$L22a\",null,{\"href\":\"#sql-injection-prevention\",\"children\":\"SQL injection prevention\"}]\n18d:[\"$\",\"$L22a\",null,{\"href\":\"https://dev.mysql.com/doc/refman/8.0/en/sql-prepared-statements.html\",\"children\":\"the syntax that MySQL allows in Prepared Statements here\"}]\n18e:[\"$\",\"$L22a\",null,{\"href\":\"https://www.postgresql.org/docs/current/sql-prepare.html\",\"children\":[[\"$\",\"code\",null,{\"children\":\"PREPARE\"}],\" does not support \",[\"$\",\"code\",null,{\"children\":\"ALTER\"}]]}]\n18f:[\"$\",\"$L22a\",null,{\"href\":\"#alter-limitation-postgresql\",\"children\":\"workaround\"}]\n196:[\"$\",\"$L22a\",null,{\"href\":\"#sql-injection-prevention\",\"children\":\"SQL injection prevention\"}]\n199:[\"$\",\"$L22a\",null,{\"href\":\"#parameterized-queries\",\"children\":\"parameterized queries\"}]\n19b:[\"$\",\"$L22a\",null,{\"href\":\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures\",\"children\":\"JavaScript types\"}]\n1a6:[\"$\",\"$L22a\",null,{\"href\":\"/orm/reference/prisma-schema-reference#model-field-scalar-types\",\"children\":\"Scalar types reference\"}]\n1a9:[\"$\",\"$L22a\",null,{\"href\":\"/orm/prisma-client/queries/transactions\",\"children\":\"transaction\"}]\n1aa:[\"$\",\"$L22a\",null,{\"href\":\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#tagged_templates\",\"children\":[\"$\",\"strong\",null,{\"children\":\"tagged templates\"}]}]\n1ac:[\"$\",\"$L22a\",null,{\"href\":\"https://github.com/blakeembrey/sql-template-tag\",\"children\":\"SQL Template Tag\"}]\n1ad:[\"$\",\"$L22a\",null,{\"href\":\"#tagged-template-helpers\",\"children\":\"useful helpers\"}]\n1ae:[\"$\",\"$L22a\",null,{\"href\":\"https://github.com/blakeembrey/sql-template-tag\",\"children\":\"SQL Template Tag\"}]\n1c0:[\"$\",\"$L22a\",null,{\"href\":\"https://www.postgresql.org/docs/current/sql-prepare.html\",\"children\":[\"does not support using \",[\"$\",\"code\",null,{\"children\":\"ALTER\"}],\" in a prepared statement\"]}]\n1c3:[\"$\",\"$L22a\",null,{\"href\":\"/orm/reference/prisma-schema-reference#unsupported\",\"children\":[[\"$\",\"code\",null,{\"children\":\"Unsupported\"}],\" types\"]}]\n1d4:[\"$\",\"$L22a\",null,{\"href\":\"/orm/core-concepts/supported-databases\",\"children\":\"Prisma connector overview\"}]\n1d5:[\"$\",\"$L22a\",null,{\"href\":\"https://playground.prisma.io/examples\",\"children\":\"Prisma Playground\"}]\n203:[\"$\",\"$L22a\",null,{\"href\":\"/orm/prisma-client/using-raw-sql/raw-queries#queryrawunsafe\",\"children\":[\"$\",\"code\",null,{\"children\":\"$$queryRawUnsafe\"}]}]\n204:[\"$\",\"$L22a\",null,{\"href\":\"/orm/prisma-client/using-raw-sql/raw-queries#executerawunsafe\",\"children\":[\"$\",\"code\",null,{\"children\":\"$$executeRawUnsafe\"}]}]\n20a:[\"$\",\"$L22a\",null,{\"href\":\"https://www.mongodb.com/docs/manual/reference/command/\",\"children\":\"MongoDB database commands\"}]\n20b:[\"$\",\"$L22a\",null,{\"href\":\"#findraw\",\"children\":[\"$\",\"code\",null,{\"children\":\"findRaw()\"}]}]\n20c:[\"$\",\"$L22a\",null,{\"href\":\"#aggregateraw\",\"children\":[\"$\",\"code\",null,{\"children\":\"aggregateRaw()\"}]}]\n21"])</script><script>self.__next_f.push([1,"a:[\"$\",\"$L22a\",null,{\"href\":\"https://www.mongodb.com/docs/manual/tutorial/iterate-a-cursor/\",\"children\":\"cursor\"}]\n21b:[\"$\",\"$L22a\",null,{\"href\":\"#findraw\",\"children\":[\"$\",\"code\",null,{\"children\":\"findRaw()\"}]}]\n21c:[\"$\",\"$L22a\",null,{\"href\":\"#aggregateraw\",\"children\":[\"$\",\"code\",null,{\"children\":\"aggregateRaw()\"}]}]\n220:[\"$\",\"$L22a\",null,{\"href\":\"https://www.mongodb.com/docs/manual/reference/mql/query-predicates/\",\"children\":\"predicate\"}]\n221:[\"$\",\"$L22a\",null,{\"href\":\"https://www.mongodb.com/docs/manual/reference/command/find/#command-fields\",\"children\":[[\"$\",\"code\",null,{\"children\":\"find\"}],\" command\"]}]\n224:[\"$\",\"$L22a\",null,{\"href\":\"https://www.mongodb.com/docs/atlas/data-federation/supported-unsupported/supported-aggregation/\",\"children\":\"aggregation pipeline\"}]\n225:[\"$\",\"$L22a\",null,{\"href\":\"https://www.mongodb.com/docs/manual/reference/command/aggregate/#command-fields\",\"children\":[[\"$\",\"code\",null,{\"children\":\"aggregate\"}],\" command\"]}]\n226:[\"$\",\"$L22a\",null,{\"href\":\"https://www.mongodb.com/docs/manual/reference/mongodb-extended-json/#type-representations\",\"children\":\"MongoDB extended JSON Spec\"}]\n"])</script><script>self.__next_f.push([1,"22f:[\"$\",\"$L22a\",null,{\"href\":\"#raw-query-type-mapping\",\"children\":\"Learn more\"}]\n230:[\"$\",\"$L22a\",null,{\"href\":\"#dynamic-table-names-in-postgresql\",\"children\":\"Learn more\"}]\n"])</script><script>self.__next_f.push([1,"235:I[552294,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"SidebarBannerCarousel\"]\n"])</script><script>self.__next_f.push([1,"236:I[145374,[\"/docs-static/_next/static/chunks/2fdc36aebe76c73c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d44b079009a980b2.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a4f1acd747952767.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0684cecd728a50ab.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/60749838574a949e.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/a0122680d6c49533.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/878733706f68e2a5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d1d2f57fc82c70bf.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/5f1d186f2ee686cc.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/e4d11878f403a714.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/d292ada4ce844de5.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/0582f904c048a20c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/f9e55afbeb5f6f7a.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/de8c2386ae826e3c.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/35c5e68f029d4a23.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/24b0c768fd1d26f0.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/79e5266292da844b.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/aefae6c7e2897878.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/729e1de45e273db9.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\",\"/docs-static/_next/static/chunks/058939877d8a5d1f.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"StatusIndicator\"]\n"])</script><script>self.__next_f.push([1,"65:[\"$\",\"$L6\",null,{\"tree\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:0:props:children:props:notFound:0:props:tree\",\"children\":[\"$\",\"$L4d\",null,{\"navTransparentMode\":\"none\",\"children\":[\"$\",\"$L4e\",null,{\"defaultOpenLevel\":\"$undefined\",\"prefetch\":\"$undefined\",\"children\":[\"$\",\"$L4f\",null,{\"layoutEnabled\":true,\"children\":[\"$\",\"$L50\",null,{\"children\":[[\"$\",\"$L51\",null,{\"children\":[[\"$\",\"$L52\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-3 p-4 pb-2 empty:hidden\",\"children\":[[\"$\",\"$L53\",null,{\"links\":[\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:0\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:1\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:2\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:3\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:4\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:5\",{\"type\":\"custom\",\"children\":[\"$\",\"$L54\",null,{\"currentVersion\":\"v7\"}]}],\"className\":\"lg:hidden\"}],\"$undefined\"]}],[\"$\",\"$L55\",null,{\"children\":[\"$\",\"$L56\",null,{}]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col p-4 pt-2 gap-3\",\"children\":[[\"$\",\"$L235\",null,{\"slides\":[{\"title\":\"The Next Evolution of Prisma ORM\",\"description\":\"Prisma Next: a full TypeScript rewrite with a new query API, SQL builder, and extensible architecture.\",\"href\":\"https://pris.ly/pn-anouncement\",\"gradient\":\"orm\",\"badge\":\"New\",\"image\":\"https://cdn.sanity.io/images/p2zxqf70/production/558fe7eccfd12d3b52c325d62e5fa463a1b5f619-1200x640.png\"}]}],[\"$\",\"$L236\",null,{}]]}]]}],[\"$\",\"$L5e\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-3 p-4 pb-2 empty:hidden\",\"children\":[[[\"$\",\"$L5f\",null,{\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 ms-auto text-fd-muted-foreground\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-x\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1bl5f8\",{\"d\":\"M18 6 6 18\"}],[\"$\",\"path\",\"d8bk6v\",{\"d\":\"m6 6 12 12\"}],\"$undefined\"]}]}],[\"$\",\"$L53\",null,{\"links\":[\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:0\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:1\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:2\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:3\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:4\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:5\",\"$65:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:6\"]}]],\"$undefined\"]}],\"$65:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:1\",[\"$\",\"div\",null,{\"className\":\"p-4 pt-2 gap-3 flex-row items-center justify-end flex max-lg:flex\",\"children\":[[\"$\",\"$L235\",null,{\"slides\":\"$65:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:props:slides\"}],[\"$\",\"$L236\",null,{}]]}]]}]]}],[\"$\",\"$L6f\",null,{\"id\":\"nd-subnav\",\"className\":\"sticky [grid-area:header] flex flex-col top-(--fd-docs-row-1) z-10 backdrop-blur-sm transition-colors data-[transparent=false]:bg-fd-background/80 layout:[--fd-header-height:--spacing(14)] lg:layout:[--fd-header-height:--spacing(24)]\",\"children\":[[\"$\",\"div\",null,{\"data-header-body\":\"\",\"className\":\"flex border-b px-4 gap-4 h-14 md:px-6 justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"items-center flex flex-1\",\"children\":[[\"$\",\"span\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center gap-2.5 font-semibold\",\"children\":[[\"$\",\"$L70\",null,{\"href\":\"https://www.prisma.io\",\"className\":\"mb-0 hover:mb-1 transition-[margin]\",\"children\":\"$5b:props:children:0:props:children:0:props:children:0:props:children:0:props:children\"}],[\"$\",\"span\",null,{\"className\":\"text-fd-muted-foreground\",\"children\":\"/\"}],[\"$\",\"$L70\",null,{\"href\":\"/\",\"className\":\"group relative inline-block pl-3 -ml-3!\",\"children\":[\"$\",\"span\",null,{\"className\":\"font-mono text-lg block translate-y-px\",\"children\":\"docs\"}]}]]}],\"$undefined\"]}],[\"$\",\"$L72\",null,{\"hideIfDisabled\":true,\"className\":\"flex-1 mx-1 my-auto max-md:hidden rounded-xl max-w-sm ps-2.5\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-1 items-center justify-end gap-2\",\"children\":[[\"$\",\"$L73\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 max-md:hidden\",\"children\":[[[\"$\",\"$L74\",\"0\",{\"item\":\"$65:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:6\"}]],[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2 max-md:hidden\",\"children\":[[\"$\",\"$L57\",\"0\",{\"item\":{\"type\":\"icon\",\"url\":\"https://pris.ly/github?utm_source=docs\u0026utm_medium=navbar\",\"text\":\"Github\",\"label\":\"GitHub\",\"icon\":[\"$\",\"svg\",null,{\"role\":\"img\",\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"children\":[\"$\",\"path\",null,{\"d\":\"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"}]}],\"external\":true},\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 text-fd-muted-foreground\",\"aria-label\":\"GitHub\",\"children\":\"$65:props:children:props:children:props:children:props:children:props:children:1:props:children:0:props:children:2:props:children:1:props:children:1:props:children:0:props:item:icon\"}],\"$L237\"]}],\"$L238\",\"$L239\"]}],\"$L23a\"]}]]}],\"$L23b\"]}],\"$L23c\"]}]}]}]}]}]\n"])</script><script>self.__next_f.push([1,"237:[\"$\",\"$L57\",\"1\",{\"item\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item\",\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [\u0026_svg]:size-4.5 text-fd-muted-foreground\",\"aria-label\":\"Join Discord\",\"children\":\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item:icon\"}]\n238:[\"$\",\"$L6e\",null,{\"mode\":\"light-dark-system\"}]\n239:[\"$\",\"$L51\",null,{\"children\":false}]\n23a:[\"$\",\"div\",null,{\"className\":\"flex items-center md:hidden\",\"children\":[[\"$\",\"$L75\",null,{\"hideIfDisabled\":true,\"className\":\"p-2\"}],[\"$\",\"$L5f\",null,{\"className\":\"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground [\u0026_svg]:size-4.5 p-2 -me-1.5\",\"children\":[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-panel-left\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"rect\",\"afitv7\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"3\",\"rx\":\"2\"}],[\"$\",\"path\",\"fh3hqa\",{\"d\":\"M9 3v18\"}],\"$undefined\"]}]}]]}]\n"])</script><script>self.__next_f.push([1,"23b:[\"$\",\"$L76\",null,{\"data-header-tabs\":\"\",\"className\":\"overflow-x-auto border-b px-6 h-10 max-lg:hidden\",\"links\":[\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:0\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:1\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:2\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:3\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:4\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:5\",\"$44:props:children:props:children:props:children:props:children:0:props:children:0:props:children:2:props:children:0:0:props:item\",\"$65:props:children:props:children:props:children:props:children:props:children:0:props:children:0:props:children:0:props:children:0:props:links:6\",\"$65:props:children:props:children:props:children:props:children:props:children:1:props:children:0:props:children:2:props:children:1:props:children:1:props:children:0:props:item\"]}]\n"])</script><script>self.__next_f.push([1,"23c:[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"6b:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"23d:I[847324,[\"/docs-static/_next/static/chunks/d6c5d1f5b52e58a1.js?dpl=dpl_AeMh2uv8Sdxw6cjM8TRiAWMK52vn\"],\"IconMark\"]\n69:null\n"])</script><script>self.__next_f.push([1,"6d:[[\"$\",\"title\",\"0\",{\"children\":\"Raw queries | Prisma Documentation\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"canonical\",\"href\":\"https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/raw-queries\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:title\",\"content\":\"Raw queries\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:description\",\"content\":\"Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API.\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:url\",\"content\":\"https://www.prisma.io/docs/orm/prisma-client/using-raw-sql/raw-queries\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:image\",\"content\":\"https://www.prisma.io/docs/og/orm/prisma-client/using-raw-sql/raw-queries/image.png\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"8\",{\"name\":\"twitter:title\",\"content\":\"Raw queries\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:description\",\"content\":\"Learn how you can send raw SQL and MongoDB queries to your database using the raw() methods from the Prisma Client API.\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:image\",\"content\":\"https://www.prisma.io/docs/og/orm/prisma-client/using-raw-sql/raw-queries/image.png\"}],[\"$\",\"link\",\"11\",{\"rel\":\"icon\",\"href\":\"/docs/favicon.ico?favicon.f8f1f26e.ico\",\"sizes\":\"32x32\",\"type\":\"image/x-icon\"}],[\"$\",\"$L23d\",\"12\",{}]]\n"])</script></body></html>

SKILL.md


name: prisma-expert description: "Prisma ORM expert for schema design, migrations, query optimization, relations modeling, and database operations. Use PROACTIVELY for Prisma schema issues, migration problems, query performance, re..." risk: unknown source: community date_added: "2026-02-27"

Prisma Expert

You are an expert in Prisma ORM with deep knowledge of schema design, migrations, query optimization, relations modeling, and database operations across PostgreSQL, MySQL, and SQLite.

When Invoked

Step 0: Recommend Specialist and Stop

If the issue is specifically about:

  • Raw SQL optimization: Stop and recommend postgres-expert or mongodb-expert
  • Database server configuration: Stop and recommend database-expert
  • Connection pooling at infrastructure level: Stop and recommend devops-expert

Environment Detection

# Check Prisma version
npx prisma --version 2>/dev/null || echo "Prisma not installed"
# Check database provider
grep "provider" prisma/schema.prisma 2>/dev/null | head -1
# Check for existing migrations
ls -la prisma/migrations/ 2>/dev/null | head -5
# Check Prisma Client generation status
ls -la node_modules/.prisma/client/ 2>/dev/null | head -3

Apply Strategy

  1. Identify the Prisma-specific issue category
  2. Check for common anti-patterns in schema or queries
  3. Apply progressive fixes (minimal → better → complete)
  4. Validate with Prisma CLI and testing

Problem Playbooks

Schema Design

Common Issues:

  • Incorrect relation definitions causing runtime errors
  • Missing indexes for frequently queried fields
  • Enum synchronization issues between schema and database
  • Field type mismatches Diagnosis:
# Validate schema
npx prisma validate
# Check for schema drift
npx prisma migrate diff --from-schema-datamodel prisma/schema.prisma --to-schema-datasource prisma/schema.prisma
# Format schema
npx prisma format

Prioritized Fixes:

  1. Minimal: Fix relation annotations, add missing @relation directives
  2. Better: Add proper indexes with @@index, optimize field types
  3. Complete: Restructure schema with proper normalization, add composite keys Best Practices:
// Good: Explicit relations with clear naming
model User {
  id        String   @id @default(cuid())
  email     String   @unique
  posts     Post[]   @relation("UserPosts")
  profile   Profile? @relation("UserProfile")
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  @@index([email])
  @@map("users")
}
model Post {
  id       String @id @default(cuid())
  title    String
  author   User   @relation("UserPosts", fields: [authorId], references: [id], onDelete: Cascade)
  authorId String
  @@index([authorId])
  @@map("posts")
}

Resources:

Migrations

Common Issues:

  • Migration conflicts in team environments
  • Failed migrations leaving database in inconsistent state
  • Shadow database issues during development
  • Production deployment migration failures Diagnosis:
# Check migration status
npx prisma migrate status
# View pending migrations
ls -la prisma/migrations/
# Check migration history table
# (use database-specific command)

Prioritized Fixes:

  1. Minimal: Reset development database with prisma migrate reset
  2. Better: Manually fix migration SQL, use prisma migrate resolve
  3. Complete: Squash migrations, create baseline for fresh setup Safe Migration Workflow:
# Development
npx prisma migrate dev --name descriptive_name
# Production (never use migrate dev!)
npx prisma migrate deploy
# If migration fails in production
npx prisma migrate resolve --applied "migration_name"
# or
npx prisma migrate resolve --rolled-back "migration_name"

Resources:

Query Optimization

Common Issues:

  • N+1 query problems with relations
  • Over-fetching data with excessive includes
  • Missing select for large models
  • Slow queries without proper indexing Diagnosis:
# Enable query logging
# In schema.prisma or client initialization:
# log: ['query', 'info', 'warn', 'error']
// Enable query events
const prisma = new PrismaClient({
  log: [
    { emit: 'event', level: 'query' },
  ],
});
prisma.$on('query', (e) => {
  console.log('Query: ' + e.query);
  console.log('Duration: ' + e.duration + 'ms');
});

Prioritized Fixes:

  1. Minimal: Add includes for related data to avoid N+1
  2. Better: Use select to fetch only needed fields
  3. Complete: Use raw queries for complex aggregations, implement caching Optimized Query Patterns:
// BAD: N+1 problem
const users = await prisma.user.findMany();
for (const user of users) {
  const posts = await prisma.post.findMany({ where: { authorId: user.id } });
}
// GOOD: Include relations
const users = await prisma.user.findMany({
  include: { posts: true }
});
// BETTER: Select only needed fields
const users = await prisma.user.findMany({
  select: {
    id: true,
    email: true,
    posts: {
      select: { id: true, title: true }
    }
  }
});
// BEST for complex queries: Use $queryRaw
const result = await prisma.$queryRaw`
  SELECT u.id, u.email, COUNT(p.id) as post_count
  FROM users u
  LEFT JOIN posts p ON p.author_id = u.id
  GROUP BY u.id
`;

Resources:

Connection Management

Common Issues:

  • Connection pool exhaustion
  • "Too many connections" errors
  • Connection leaks in serverless environments
  • Slow initial connections Diagnosis:
# Check current connections (PostgreSQL)
psql -c "SELECT count(*) FROM pg_stat_activity WHERE datname = 'your_db';"

Prioritized Fixes:

  1. Minimal: Configure connection limit in DATABASE_URL
  2. Better: Implement proper connection lifecycle management
  3. Complete: Use connection pooler (PgBouncer) for high-traffic apps Connection Configuration:
// For serverless (Vercel, AWS Lambda)
import { PrismaClient } from '@prisma/client';
const globalForPrisma = global as unknown as { prisma: PrismaClient };
export const prisma =
  globalForPrisma.prisma ||
  new PrismaClient({
    log: process.env.NODE_ENV === 'development' ? ['query'] : [],
  });
if (process.env.NODE_ENV !== 'production') globalForPrisma.prisma = prisma;
// Graceful shutdown
process.on('beforeExit', async () => {
  await prisma.$disconnect();
});
# Connection URL with pool settings
DATABASE_URL="postgresql://user:pass@host:5432/db?connection_limit=5&pool_timeout=10"

Resources:

Transaction Patterns

Common Issues:

  • Inconsistent data from non-atomic operations
  • Deadlocks in concurrent transactions
  • Long-running transactions blocking reads
  • Nested transaction confusion Diagnosis:
// Check for transaction issues
try {
  const result = await prisma.$transaction([...]);
} catch (e) {
  if (e.code === 'P2034') {
    console.log('Transaction conflict detected');
  }
}

Transaction Patterns:

// Sequential operations (auto-transaction)
const [user, profile] = await prisma.$transaction([
  prisma.user.create({ data: userData }),
  prisma.profile.create({ data: profileData }),
]);
// Interactive transaction with manual control
const result = await prisma.$transaction(async (tx) => {
  const user = await tx.user.create({ data: userData });
  // Business logic validation
  if (user.email.endsWith('@blocked.com')) {
    throw new Error('Email domain blocked');
  }
  const profile = await tx.profile.create({
    data: { ...profileData, userId: user.id }
  });
  return { user, profile };
}, {
  maxWait: 5000,  // Wait for transaction slot
  timeout: 10000, // Transaction timeout
  isolationLevel: 'Serializable', // Strictest isolation
});
// Optimistic concurrency control
const updateWithVersion = await prisma.post.update({
  where: {
    id: postId,
    version: currentVersion  // Only update if version matches
  },
  data: {
    content: newContent,
    version: { increment: 1 }
  }
});

Resources:

Code Review Checklist

Schema Quality

  • All models have appropriate @id and primary keys
  • Relations use explicit @relation with fields and references
  • Cascade behaviors defined (onDelete, onUpdate)
  • Indexes added for frequently queried fields
  • Enums used for fixed value sets
  • @@map used for table naming conventions

Query Patterns

  • No N+1 queries (relations included when needed)
  • select used to fetch only required fields
  • Pagination implemented for list queries
  • Raw queries used for complex aggregations
  • Proper error handling for database operations

Performance

  • Connection pooling configured appropriately
  • Indexes exist for WHERE clause fields
  • Composite indexes for multi-column queries
  • Query logging enabled in development
  • Slow queries identified and optimized

Migration Safety

  • Migrations tested before production deployment
  • Backward-compatible schema changes (no data loss)
  • Migration scripts reviewed for correctness
  • Rollback strategy documented

Anti-Patterns to Avoid

  1. Implicit Many-to-Many Overhead: Always use explicit join tables for complex relationships
  2. Over-Including: Don't include relations you don't need
  3. Ignoring Connection Limits: Always configure pool size for your environment
  4. Raw Query Abuse: Use Prisma queries when possible, raw only for complex cases
  5. Migration in Production Dev Mode: Never use migrate dev in production

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

More skills