SQL 减少值

PostgreSQL
MySQL
SQLite
MSSQL
Cockroach
本指南假定您已熟悉:

要减少列的值,可以使用 update().set() 方法,如下所示:

import { eq, sql } from 'drizzle-orm';

const db = drizzle(...)
  
await db
  .update(table)
  .set({
    counter: sql`${table.counter} - 1`,
  })
  .where(eq(table.id, 1));
update "table" set "counter" = "counter" - 1 where "id" = 1;

Drizzle 具有简单灵活的 API,可以让你轻松创建自定义解决方案。以下是如何实现自定义减少函数的方法:

import { AnyColumn } from 'drizzle-orm';

const decrement = (column: AnyColumn, value = 1) => {
  return sql`${column} - ${value}`;
};

await db
  .update(table)
  .set({
    counter1: decrement(table.counter1),
    counter2: decrement(table.counter2, 10),
  })
  .where(eq(table.id, 1));