Philographer

Datagrip이란 어플리케이션에서 PostgreSQL에 이렇게 쿼리를 날렸더니”foreignid” 가 없다는 에러를 뿜는다. 나는 분명 대문자로 잘 쳤는데 소문자로 들어가는 것이다.

SELECT * FROM files WHERE foreignId
ERROR: column "foreignid" does not exist
  Hint: Perhaps you meant to reference the column "files.foreignId".
  Position: 27

구글에 “postgresql capital letters”를 검색하니 다음과 같은 Stack Overflow에 질문글이 있었다.

All identifiers (including column names) that are not double-quoted are folded to lower case in PostgreSQL. Column names that were created with double-quotes and thereby retained upper-case letters (and/or other syntax violations) have to be double-quoted for the rest of their life. So, yes, PostgreSQL column names are case-sensitive:

짧게 말하자면 그냥 노말하게 쓸때는 무조건 소문자가 들어가야 하고, 대문자를 포함할땐 “foreignId”이렇게 대문자로 활용해 주어야 한다.

ORM으로 주로 DB를 만지다 보니 이런 DB의 특징을 잘 몰랐는데, 직접 쿼리문 한번 써보기를 잘 했다.

참조: http://stackoverflow.com/questions/20878932/are-postgresql-column-names-case-sensitive

댓글 로드 중…

트랙백을 확인할 수 있습니다

URL을 배껴둬서 트랙백을 보낼 수 있습니다