我试图使用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子句引用相关数据,则显然是可选的.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。