prisma와 postgreSQL을 공부하던 중 희한한 에러를 만나서 메모해둔다.
User라는 테이블을 prisma migration 파일을 이용해서 만들었는데
insert into로 데이터를 넣어보려하니 계속해서 syntax에러가 났다.
연습용 db라 db를 통째로 날리고 users로 테이블을 다시 만들었더니 insert에 성공했다.
User라는 이름이 문제였나 싶어서 다시 db를 삭제후 User로 만들었는데 같은 에러가 발생한다.
구글링을 해보니 'postgreSQL은 테이블 이름의 대소문자를 구분할 수도 있다.'고 한다.
?? 무슨말인가 싶다.
테이블 이름이 전부 소문자일 경우
user -정상/ User -정상/ useR -정상
모두 정상으로 나온다.
DBMS가 자동으로 소문자로 변경해 버리기 때문이라고 한다.
하지만 내가 만들었던 것(User)과 같이 대문자가 테이블명에 들어가면
User -에러/ user -에러/ useR -에러
전부다 에러가 발생한다!
테이블명에 대문자가 포함되어거나 테이블명이 예약어인 경우 쌍다옴표로 감싸줘야 한다고 한다.
"User" -정상
이러한 문제로 테이블명에 대문자가 들어갈 경우 에러가 발생할 수 있기 때문에 테이블명은 소문자로 사용하는 것이 좋다고 한다.
출처:https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jsf3rd&logNo=150761434