로컬서버에서 멀쩡하게 동작하던 쿼리가 테스트 서버에 올라간 뒤에 동작하지 않는다.

테스트서버 로그를 볼 수 없어서 한참이나 해맸는데... 원인은 테이블이름에 들어간 대문자 하나 때문이였다.


Linux/Unix 계열에서는  table 과 database 명이 directory와 file 명이고 Linux/Unix 는 디렉토리와 파일에 접근할때 대, 소문자를 구분하므로 쿼리를 실행시킬때 테이블의 대소문자를 구분하게 된다. Window 환경에서는 대소문자를 구분하지 않는다.



요약


원인 : MySQL 은 Linux / Unix 환경에서 테이블 이름 대소문자를 구분한다.

해결 : 쿼리 짤때 대소문자 확인을 잘하자. 




이번에 이직을 하면서 사용하던 데이터베이스가 Oracle -> MySQL로 바뀜.

물론 Oracle 이나 MySQL 이나 매우 큰 차이가 있지는 않지만 Oracle을 사용하면서 편하게 사용하던 것들이 없어서 당황

ROWNUM은 당연히 있겠거니 했는데 없었다.


그래서 찾아본 MySQL 에서 ROWNUM 사용하기


SELECT
    @ronwnum := @rownum+1 , t.*
FROM
    TABLE T , (SELECT @rownum := 0 ) R


가챠 게임에 많은 돈을 꼴아박고 빡쳐서 만들어본 가중치 있는 랜덤 


목표 : 가중치 있는 랜덤 값 뽑기

소요시간 : 2시간




'매일매일개발' 카테고리의 다른 글

codewars #43 Counting Duplicates (6kyu)  (0) 2018.05.17
#3 PANGRAM  (0) 2018.03.08
#1 문자열 역순으로 출력하기  (0) 2018.03.07

+ Recent posts