Drizzle | SQL 값 증가시키기
PostgreSQL
MySQL
SQLite

컬럼 값을 증가시키려면 아래와 같이 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 increment = (column: AnyColumn, value = 1) => {
  return sql`${column} + ${value}`;
};

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