Вот моя ситуация:
• I have a table of users <br><br>
• I have a table of movies <br><br>
• I have a table of user_movies that associates users to movies that stores a frequently changing "score" column on each record.<br><br>
• I need to be able to bulk update the user_movies table for speed and to do so I believe I need a unique index to be able to pull off bulk updates like this.<br><br>
• Considering each user_movie combination is unique, would it be possible to do
Сделать что-то вроде (User_id--->) uid_mid (<----movie_id)
как уникальный идентификатор? Если так, как можно было бы перевести существующую таблицу в эту?
Я хотел бы думать, что есть способ использовать двухколонный индекс для вашей проблемы, однако …
Я предполагаю ответить на исходный вопрос и предположить, что вы действительно хотите объединить столбцы в один, я бы предложил рассмотреть что-то вроде следующего:
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);
Числа 250 и 125 произвольны, конечно, но вы бы хотели, чтобы они были достаточно большими, чтобы соответствовать вашим реальным идентификаторам. Я добавляю второй идентификатор, чтобы убедиться, что он действительно уникален (поскольку мы не хотим, чтобы user_id = 55 / movie_id = 66 получал тот же идентификатор, что и user_id = 5 / movie_id = 566).
Других решений пока нет …