首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >循环遍历PostgreSQL中的记录并生成guids?

循环遍历PostgreSQL中的记录并生成guids?
EN

Stack Overflow用户
提问于 2018-04-14 21:19:57
回答 2查看 1.9K关注 0票数 1

我正在从网址上掩盖我的身份证。我解决了这个问题,在URL中有一个GUID,而不是主键(有人可以很容易地猜到)。这个GUID将自己映射到记录,就像主键一样。

  1. 这是个不错的解决方案吗?要看别人的数据,一定要有人猜到。我在这里漏掉了安全漏洞。
  2. 如何使用PostgreSQL更新现有数据库以循环记录,以使用唯一的GUID更新每条记录?
EN

回答 2

Stack Overflow用户

发布于 2018-04-15 07:30:37

您也可以在没有Postgres扩展的情况下创建GUID,例如:

代码语言:javascript
复制
ALTER TABLE my_table ADD COLUMN guid UUID 
    DEFAULT MD5(RANDOM()::TEXT || ':' || CURRENT_TIMESTAMP)::UUID NOT NULL;

如果不需要使用默认值定义GUID,则可以在生成时使用行数据,例如主键:

代码语言:javascript
复制
BEGIN;
ALTER TABLE my_table ADD COLUMN guid UUID;
UPDATE my_table SET guid = MD5(id::TEXT || ':' || CURRENT_TIMESTAMP)::UUID;
ALTER TABLE my_table ALTER guid SET NOT NULL;
END;
票数 5
EN

Stack Overflow用户

发布于 2018-04-15 06:09:38

uuid-ossp扩展具有生成随机uuid的函数。

第一:

代码语言:javascript
复制
create extension "uuid-ossp";

然后:

代码语言:javascript
复制
alter table url add column guid uuid not null default uuid_generate_v4();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49836309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档