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