TechBridge

CREATE TABLE 심화 — CHECK · EXCLUDE · GENERATED 컬럼 · DEFAULT 전략

← 목록으로

📋 실습 안내

✏️ CODE EDITOR (JSX)
▶ 실행 버튼을 눌러 코드를 테스트하세요.
👁️ 내 미리보기 내 코드 실행 결과
🎯 완성 미리보기 목표
위 에디터 코드를 수정해서 이 결과물과 똑같이 만들어보세요!
💡 TODO 주석을 채워서 위 결과물처럼 동작하게 만들어보세요
🤖 AI 선생님에게 질문하기 이번 강의 전용
  선생님이 답변 중이에요...
⚠️ 학습 관련 질문만 답변합니다. 관련 없는 질문은 자동으로 학습으로 유도됩니다.
Q1. PostgreSQL의 EXCLUDE 제약조건에 대한 설명으로 옳은 것은?
💡 EXCLUDE는 PostgreSQL 고유 기능으로 행 간 충돌 조건을 GIST 등의 인덱스를 사용해 강제합니다. 범위 겹침 방지에 주로 활용되며 MySQL에는 없는 기능입니다.
Q2. GENERATED ALWAYS AS ... STORED 컬럼에 대한 설명으로 틀린 것은?
💡 PostgreSQL은 STORED 타입만 지원하며 VIRTUAL 타입은 지원하지 않습니다. MySQL은 두 타입을 모두 지원합니다.
Q3. 다음 CHECK 제약 중 PostgreSQL에서 오류를 발생시키는 것은?
💡 CHECK 제약 표현식은 결정적(deterministic)이어야 합니다. NOW()처럼 호출 시마다 다른 값을 반환하는 비결정적 함수는 CHECK에서 사용할 수 없습니다.
Q4. 같은 방의 예약 시간 겹침을 DB 레벨에서 원자적으로 방지하는 가장 올바른 방법은?
💡 EXCLUDE USING GIST는 범위 타입의 겹침을 원자적으로 방지합니다. 트리거나 애플리케이션 레벨 확인은 동시 요청 시 레이스 컨디션에 취약합니다.
Q5. PostgreSQL에서 UUID를 PRIMARY KEY의 DEFAULT로 사용하는 올바른 방법은?
💡 PostgreSQL에서 UUID를 자동 생성하려면 gen_random_uuid() 함수를 사용합니다. PostgreSQL 13+에서는 내장 함수로 제공되며, 이전 버전에서는 pgcrypto 확장이 필요합니다.
🎉

퀴즈 통과!

점수: 0점 — 수고하셨습니다!

다음 강의로 →
😅

아쉽네요!

점수: 0점 — 70점 이상이 되어야 통과합니다.