【发布时间】:2014-04-22 04:37:26
【问题描述】:
在亚马逊 ec2 RDS Postgresql:
=> SHOW rds.extensions;
rds.extensions
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
btree_gin,btree_gist,chkpass,citext,cube,dblink,dict_int,dict_xsyn,earthdistance,fuzzystrmatch,hstore,intagg,intarray,isn,ltree,pgcrypto,pgrowlocks,pg_trgm,plperl,plpgsql,pltcl,postgis,postgis_tiger_geocoder,postgis_topology,sslinfo,tablefunc,tsearch2,unaccent,uuid-ossp
(1 row)
如您所见,uuid-ossp 扩展名确实存在。但是,当我调用生成 uuid_v4 的函数时,它会失败:
CREATE TABLE my_table (
id uuid DEFAULT uuid_generate_v4() NOT NULL,
name character varying(32) NOT NULL,
);
这是怎么回事?
【问题讨论】:
-
今后,请始终显示任何错误消息的准确文本。
-
是的扩展存在,但数据库可能处于不一致的状态。可能发生的一个原因是如果您删除架构但保留扩展名。为避免这种情况,运行 DROP EXTENSION IF EXISTS "uuid-ossp" CASCADE 是一个很好的策略;然后创建扩展“uuid-ossp”; (请参阅下面@atomCode的答案中的详细说明)
标签: postgresql amazon-web-services amazon-ec2