prisma pure query $queryRawUnsafe raq

agnusdei·2023년 7월 20일
0

$queryRawUnsafe는 Prisma Client의 메서드입니다. 이 메서드를 사용하여 데이터베이스에 직접 SQL 쿼리를 작성하고 실행할 수 있습니다. Prisma Client는 보통 데이터베이스 작업을 위해 상위 수준의 추상화된 API를 제공하지만, 경우에 따라서는 직접 SQL 쿼리를 사용해야 할 때가 있습니다. 이때 $queryRawUnsafe를 사용합니다.

상세한 설명:

  • $queryRawUnsafe는 직접 작성한 SQL 쿼리를 데이터베이스에 전달하고 실행합니다. 이는 개발자가 더 세밀한 제어를 원할 때 사용할 수 있습니다.
  • 주의할 점은 사용자 입력을 사용할 때 SQL Injection과 관련된 보안 위험이 존재하므로, 사용자 입력을 처리할 때 현재의 $queryRawUnsafe 대신에 $queryRaw를 사용하거나, 필요한 경우에는 Prepared Statements를 사용하여 보안을 강화하는 것이 좋습니다.

다시 코드 예제를 살펴보겠습니다.

const result: { id: number } = await this.warehousePrismaService
  .$queryRawUnsafe(`
    SELECT id FROM regulation_sgg_monthly
    WHERE id = '${sigungu}'
    AND month BETWEEN '${dayjs()
      .startOf('year')
      .format('YYYY-MM-DD')}' AND '${dayjs()
    .endOf('year')
    .format('YYYY-MM-DD')}'
    ORDER BY month DESC
    LIMIT 1;
  `);

위 코드에서는 Prisma Client의 $queryRawUnsafe 메서드를 사용하여 regulation_sgg_monthly 테이블에서 조건에 맞는 데이터를 조회하는 SQL 쿼리를 실행하고, 그 결과를 result 변수에 저장합니다. sigungudayjs 관련 연산을 통해 각각 조건문을 구성합니다. 이렇게 $queryRawUnsafe 메서드를 사용하면 직접 작성한 SQL 쿼리로 데이터베이스 작업을 수행할 수 있습니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 20일

글 잘 봤습니다, 많은 도움이 되었습니다.

답글 달기