0

假设我有一个名为sourcetable, colA,colB的表colC。我只是想创建一个具有非重复、唯一和随机整数的 id 列。如何在 netezza SQL 或使用 proc SQL (SAS) 中创建它?

4

1 回答 1

0

为了确保唯一性,您肯定会限制id为主键或唯一键。

SAS 函数UUIDGENRANUNI是在计算时生成具有非常高唯一性概率的值的候选者。我认为没有任何简单/独立的函数可以保证 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 缺乏唯一约束/参照完整性执行? "

于 2019-03-14T13:52:32.873 回答