Граждане программисты, если человек говорит, что ему надо 9-значное уникальное число, то значит, что его и надо :) У меня тоже как-то была такая задача. И я ее решил как раз функцией в БД.
Но если без функции в БД, если ее нельзя сделать по какой-то причине, то можно вот как сделать.
Допустим, что то самое поле с 9-значным айди называется `id9`. Тогда генерим в ПХП набор из 10 уникальных чисел. Вставляем их в один запрос
select `id9` from `yourtable` where `id9` in ( 434579765, 234568154, 765483453, ......)
В списке указываем все эти 10 айди. При правильной организации БД запрос отработает быстро. А затем в ПХП смотрим результат, сравниваем полученный список айди (возможно, он будет пустой) с тем, что мы запросили. И выбираем первый из тех, что есть у нас в списке и которого нету в таблице.
Если вдруг окажется, что все 10 айди заняты, то повторяем процедуру, сгенерировав новый набор айди. Но можно утверждать, что с высокой степенью вероятности достаточно будет одного запроса для достаточно большого количества записей. 9 знаков - это числа от 100 млн. до 999 млн. Поэтому для количества записей даже в 1-2-3 млн. всегда будет достаточно одного запроса на айди, по указанному мной алгоритму.
И еще. Если этот айди будет 9-значный, но не числовой, а буквенно-числовой (пусть бы даже только английские буквы и все буквы в нижнем регистре), то общее количество вариантов еще больше возрастает. Тогда можно брать не 10 чисел в запросе, а меньше.
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)