微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL:如何存储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子句引用相关数据,则显然是可选的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐