Несколько методов:
a) Почему бы не использовать автоинкрементный столбец или генератор последовательности для генерации уникальных целых чисел на вставку? Если у вас менее 100 миллионов URL-адресов, ваши идентификаторы короткие и их легко запомнить. Однако, если это не вариант (например, потому что вы не хотите, чтобы люди угадывали идентификаторы и таким образом атаковали базу данных):
b) Встроенная функция MD5 () может помочь:
INSERT INTO table (pkey, url) VALUES (MD5('http://...'), 'http://...');
MD5 () - это хеш-функция, которая, скорее всего, даст вам уникальный идентификатор для каждого URL. Я говорю «скорее всего», потому что вы получаете 128-битный хеш от MD5, и вероятность коллизии хеша составляет порядка 2 ^ -128 (около 10 ^ -55).
Если вам нужны меньшие идентификаторы, вы можете разделить результат от MD5 до меньшего числа символов, но потенциально вы можете значительно увеличить вероятность коллизии хеша в зависимости от того, какие символы вы берете.
[Примечание: ответ с меткой времени отредактирован, поскольку он никоим образом не решает исходную проблему. -BobG]