По различным причинам, которые не слишком актуальны для вопроса, у меня есть таблица с составным ключом, состоящим из двух целых чисел, и я хочу создать единственный уникальный ключ из этих двух чисел. Моя первоначальная мысль заключалась в том, чтобы просто конкатенировать их, но я быстро столкнулся с проблемой, когда понял, что составной ключ (51,1) приведет к тому же уникальному ключу, что и (5,11), а именно 511.Есть ли простой способ создания уникального целочисленного ключа из двухцелевого составного ключа?
У кого-нибудь есть умный способ генерировать целое число из двух целых чисел, чтобы сгенерированное целое было уникальным для пары начальных целых чисел?
Редактировать: После того, как вы столкнулись с впечатляющим количеством математики, я понимаю, что одна деталь, которую я должен был включить, - это размеры ключей, о которых идет речь. В исходной паре первый ключ в настоящее время составляет 6 цифр и, вероятно, останется на 7 цифр для срока службы системы; второй ключ еще не получил больше 20. Учитывая эти ограничения, похоже, что проблема намного менее сложна.
Ни один администратор базы данных не должен позволять вам уйти от этого - при необходимости создайте столбец с ключевым столбцом и используйте уникальное ограничение для двух столбцов. –
См. Ответ Matt Ball для дубликатов. –