PostgreSQL Check란? Check를 사용하지 말아야하는 이유Node.js2024. 4. 11. 21:03
Table of Contents
PostgreSQL에는 Check란?
SQL 레벨에서 지원하는 제약조건입니다. (PostgreSQL만 지원하는 것이 아님.)
데이터 insert 요청 시 PostgreSQL DBMS가 값 검증을 수행해주는 제약조건입니다. 다음과 같이 사용할 수 있습니다:
CREATE TABLE products (
product_no integer,
name text,
price numeric CHECK (price > 0) -- 가격 컬럼에 항상 양수만 들어갈 수 있도록 검증
);
Check를 사용하면 이점
- 애플리케이션에서 값에 대한 검증을 하지 않아도 됨. 서버 코드가 굉장히 간단해짐.
반대로 존재하는 큰 단점
- DBMS 마이그레이션 시 검증 기능의 유실됨. 특정 DBMS에 의존하게 됨. (MySQL 8.0.16 이하버전 등 다른 RDBMS에는 Check 기능이 없음)
- 올바른 요청이 아님에도 커넥션을 요청하여 불필요한 비용 발생(커넥션 오버헤드)
2가지 큰 단점이 발생하여 존재하는 기능임에도 사용을 비추천드립니다.
'Node.js' 카테고리의 다른 글
[Typescript] builder 패턴 남용 금지 (0) | 2024.04.21 |
---|---|
[PostgreSQL] 내가 enum을 쓰지 않는 이유 (0) | 2024.04.14 |
[NestJS] eslint를 작성해보자. (0) | 2023.08.23 |
원클릭 회원가입 승인 구현(telegram bot, AWS s3, Flutter, Nest.js) (0) | 2023.07.21 |
[NestJS] TypeORM을 통한 트랜잭션 관리 (0) | 2023.04.30 |
@임채성 :: 푸르고 개발 블로그
글 내용 중 잘못되거나 이해되지 않는 부분은 댓글을 달아주세요! 감사합니다! 문의: puleugo@gmail.com