我试图使用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子句引用相关数据,则显然是可选的.