본문 바로가기
관리자

Programming-[Backend]/Django

[TIL] django, MYSQL, postgresql db collation

728x90
반응형

collation은 DB에 입력되는 문자의 중복을 어떻게 볼 지 설정하는 것이다. case-insensitive는 'Fred'와 'fred'를 같은 문자로 본다. case-sensitive는 대소문자를 다르게 본다.

 

DB provider에 따라 옵션의 이름이 각각 다르다. django 홈페이지에 나온 MYSQL에 대한 문서를 보면 default collation으로 속성값들이 있는 것을 볼 수 있다.

 

기본값이 정해져있다. (아래는 MYSQL)

https://dev.mysql.com/doc/refman/8.0/en/charset-general.html

 

 

장고에서는 모델을 만들 때 TextField, CharField의 인자값으로 db_collation 인자를 설정해줄 수 있다. 그리고 데이터 정렬의 기준이 된다.https://docs.djangoproject.com/en/4.1/ref/databases/

 

 

postgresql 에서는 'numeric'이라는 속성을 제공한다.

https://www.postgresql.org/docs/current/collation.html

 

 

예를들어 

name = CharField(
    max_length=128,
    db_collation="numeric",
)

이런식으로 설정하면, 숫자를 기준으로 db 값들을 정렬한다.

728x90
반응형