加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL:如何存储UUID值?

发布时间:2020-12-13 15:49:39 所属栏目:百科 来源:网络整理
导读:我试图使用PostgreSQL 9.3版本将UUID值存储到我的表中. 例: create table test( uno UUID,name text,address text);insert into test values(1,'abc','xyz'); 注意:如何将整数值存储到UUID类型中? 解决方法 UUID的重点在于它们是自动生成的,因为所使用的
我试图使用PostgreSQL 9.3版本将UUID值存储到我的表中.

例:

create table test
(
   uno UUID,name text,address text
);

insert into test values(1,'abc','xyz');

注意:如何将整数值存储到UUID类型中?

解决方法

UUID的重点在于它们是自动生成的,因为所使用的算法实际上保证了它们在您的表,数据库甚至数据库中都是唯一的. UUID存储为16字节的基准,因此当您满足以下一个或多个条件时,您真的只想使用它们:

>您需要无限期地永久存储数据.
>当您拥有一个高度分布的数据生成系统(例如,在单个“系统”中的INSERTS,它分布在多台机器上,每台机器都有自己的本地数据库)时,中央ID生成是不可行的(例如,连接有限的移动数据收集系统),稍后上传到中央服务器).
>负载平衡,复制等方面的某些场景

如果其中一种情况适用于您,那么您最好将UUID用作主键并自动生成:

CREATE TABLE test (
   uno     uuid PRIMARY KEY DEFAULT uuid_generate_v4(),name    text,address text
);

像这样你永远不必担心UUID本身,它都是在幕后完成的.您的INSERT语句将变为:

INSERT INTO test (name,address) VALUES ('abc','xyz') RETURNING uno;

如果要使用RETURNING子句引用相关数据,则显然是可选的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读