2017-11-25 3 views
0
다음

내 상황? 그렇다면 기존 테이블을 어떻게이 테이블로 옮길 수 있습니까?MySQL의 화합물 고유 색인 대 Varchar

+1

내가 묻는 바를 잘 모르겠지만 두 개의 열에 대해 색인을 생성 할 수 있다는 것을 알고 있습니까? "CREATE UNIQUE INDEX myindex on user_movies (user_id, movie_id)"(항상 해당 테이블에 대한 모든 쿼리에서 두 열을 모두 지정하는 경우 열의 순서는 중요하지 않습니다. – EdmCoff

+0

고유 인덱스를 함께 만들지 만 별도로 두 열을 사용하여 일괄 업데이트를 수행하려면 어떻게해야합니까? –

+0

나는 내가 여기 뭔가를 오해하고 있다고 생각합니다. 대량 업데이트는 어떻게하고 있습니까? – EdmCoff

답변

0
나는 그러나, 문제에 대한 두 개의 열 인덱스를 사용하는 방법이 생각하고 싶은

...

나는, 원래의 질문에 답하고 당신이 정말로 하나에 열을 결합하려는 생각하는 것 같아요 나는 다음과 같은 고려 제안 : (250) 및 (125)는 물론 임의적

ALTER TABLE user_movies ADD COLUMN new_id VARCHAR(250); 

UPDATE user_moves SET new_id=CONCAT(CAST(user_id as CHAR(125)), LPAD(CAST(move_id as CHAR(125)),125,'0')); 

CREATE UNIQUE INDEX myindex ON user_movies(new_id); 

숫자는 있지만 실제 ID를 들어갈만큼 그들이 큰 것을 원하는 것입니다. 우리는 user_id = 5/movie_id = 566과 동일한 ID를 얻기 위해 user_id = 55/movie_id = 66을 원하지 않기 때문에 두 번째 ID를 패딩하고 있습니다.