Чтобы обеспечить уникальность, вы обязательно ограничите id
либо первичным ключом, либо уникальным.
Функции SAS UUIDGEN
или RANUNI
являются кандидатами для генерации значений с очень высокой вероятностью уникальности во время вычислений. Я не думаю, что есть какая-либо простая / изолированная функция, которая может гарантировать 100%, что она не будет вычислять ранее возвращенное значение.
UUIDGEN
возвращает значение 36-байтового символа, например 170bf2ef-16c7-4b7f-b25b-000333d9679b
RANUNI
, масштабированное до 1E15, вернет целочисленное значение длиной до 14 цифр.
data want;
do i = 1 to 100;
id_v1 = uuidgen();
id_v2 = floor(1e15 * ranuni(0));
output;
end;
format id_v2 15.;
run;
Для Netezza попробуйте взглянуть на SO Как преодолеть отсутствие у Netezza уникального принуждения / обеспечения ссылочной целостности?
«