UniqueConstraint 객체를 사용하는 것이 좀 더 번거롭지만, 모델 필드에 Field() 함수로 고윳값 설정을 하는 것으로는 하지 못하는 요소가 있습니다. 첫 번째는 다음 예시 코드처럼 모델 필드 여러 개, 즉 테이블의 열을 여러 개 묶어서 고윳값 제약 하나로 지정할 수 있습니다.
파이썬 예시 코드
__table_args__ = (
UniqueConstraint("username", "email", name="uq_email_username"),
)
이렇게 username과 email을 묶어 고윳값 제약으로 설정할 수 있습니다.
두 번째는 고윳값 제약에 이름을 명명할 수 있습니다. 이는 일부 데이터베이스에서 필수인데, 가령 SQLite3의 경우 고윳값이나 외래키, 색인 등 제약을 조작하거나 삭제하려면 해당 제약 이름이 필요합니다. 이름이 없으면 어찌할 도리가 없거든요.