ClientQueries
Update
Update one or more rows matching a condition.
Use db.update() to modify rows matching a condition.
import { drizzle } from '@superapp/db'
import { eq } from 'drizzle-orm'
import * as schema from './generated/schema'
const db = drizzle({ connection, token, schema })
// The backend ensures you can only update your own rows.
// Even if you pass someone else's order ID, the permission filter
// scopes the UPDATE to rows owned by the logged-in user — so it
// simply won't match and nothing gets modified.
await db.update(schema.orders)
.set({ status: 'shipped' })
.where(eq(schema.orders.id, 'ord_abc123'))Update with Returning
const [updated] = await db.update(schema.orders)
.set({ status: 'shipped' })
.where(eq(schema.orders.id, 'ord_abc123'))
.returning()
// updated: { id, amount, status, ... }Update Multiple Fields
await db.update(schema.orders)
.set({
status: 'delivered',
amount: 300,
})
.where(eq(schema.orders.id, 'ord_abc123'))Bulk Update
Update all rows matching a broader condition.
await db.update(schema.orders)
.set({ status: 'cancelled' })
.where(eq(schema.orders.status, 'pending'))Update with Complex Filters
import { eq, lt, and } from 'drizzle-orm'
await db.update(schema.orders)
.set({ status: 'expired' })
.where(and(
eq(schema.orders.status, 'pending'),
lt(schema.orders.createdAt, new Date('2024-01-01'))
))