如何在redshift中生成12位唯一数字?

1 amazon-web-services amazon-redshift amazon-redshift-spectrum

我有一个表,即3列email_idridfinal_id

rid和的规则final_id

  1. 如果email_id具有对应的rid,则rid用作final_id
  2. 如果email_id没有对应的数字rid(即为ridnull),请生成一个唯一的12位数字并将其插入final_id字段。

如何在redshift中生成12位唯一数字?

Joh*_*ein 6

在Redshift中创建UUID函数开始

默认情况下,AWS Redshift中没有UUID函数。但是,使用Python用户定义函数,您可以在Redshift中轻松创建UUID函数。

如果要随机UUID:

CREATE OR REPLACE FUNCTION public.fn_uuid()
RETURNS character varying AS
' import uuid
 return uuid.uuid4().__str__()
 '
LANGUAGE plpythonu VOLATILE;
Run Code Online (Sandbox Code Playgroud)

如果要顺序UUID:

CREATE OR REPLACE FUNCTION public.fn_uuid()
RETURNS character varying AS
' import uuid
 return uuid.uuid1().__str__()
 '
LANGUAGE plpythonu VOLATILE;
Run Code Online (Sandbox Code Playgroud)