我有一个电子邮件地址列表,我想创建一个表并分配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;
您可以将其存储在映射表中,也可以更新原始表中的新列。