Postgrecreate anonymous id



我有一个电子邮件地址列表,我想创建一个表并分配id,以保护实际用户。在postgresql中,最简单的方法是什么?

我现在拥有的:

     email          last_contact
bob@xyzcorp.com       20140101
mary@abc.gov          20140606
sara@cde.com          20140708
    ...                  ...

我想要一些类似的东西:

     email          anon_id
bob@xyzcorp.com       abc123
mary@abc.gov          abc124
sara@cde.com          abc125
   ...                 ...

使用uuid-ossp扩展生成这样的UUID。(我假设您希望它们是随机的,而不是来自非字母数字的Sequence

CREATE EXTENSION "uuid-ossp";
select uuid_generate_v4();

接下来是select into查询,其中包含新表所需的列,并动态生成UUID

您可以使用它来创建这样的结果。

select email, 
       'abc'||to_char(row_number() over (), 'FM0000') as anon_id
from users;

您可以将其存储在映射表中,也可以更新原始表中的新列。

最新更新