Prepared Statements in Drizzle ORM

From the Drizzle ORM cheat sheet · Prepared Statements & Raw SQL · verified Jul 2026

Prepared Statements

Pre-compile queries for repeated execution with different parameters.

typescript
import { eq, placeholder } from 'drizzle-orm';

// Create a prepared statement
const getUserById = db.select()
  .from(users)
  .where(eq(users.id, placeholder('id')))
  .prepare('get_user_by_id');

// Execute with different params
const user1 = await getUserById.execute({ id: 1 });
const user2 = await getUserById.execute({ id: 2 });
💡 Prepared stmts skip query planning on reuse
⚡ Use placeholder() for dynamic parameter slots
📌 Name the prepared stmt for DB-level caching
🟢 Works with select, insert, update, and delete
preparedplaceholderperformance

Continue with Drizzle ORM

Save the full cheat sheet or work through every related task.

More Drizzle ORM tasks

Back to the full Drizzle ORM cheat sheet