믿을 수 있는 auto-fill
Default 가 DB 의 auto-fill. INSERT 가 컬럼 스킵하면 default 발동. INSERT terse 하게 유지, 데이터 일관성 유지, 'X 설정 잊었어' 카테고리 버그 제거.
Static, expression, generated
세 종류, 위력 순:
- Static default: 리터럴 값 —
0,'draft',FALSE. - Expression default: INSERT 시점에 계산 —
now(),CURRENT_DATE,gen_random_uuid(),encode(gen_random_bytes(32),'hex'). - Generated column: 같은 행의 다른 컬럼 에서 계산 — STORED (디스크 기록) 또는 VIRTUAL (read 시 계산; PG 18+).
Generated column 이 값을 함
Generated column 이 공식에서 값 도출. INSERT/UPDATE 직접 불가 — DB 가 정확하게 유지. 앱에서 천 번 계산할 derived value 에 써: full name, 세금 포함 total, slugified title, 정규화된 검색 term.