请问 PostgreSQL中有 sys_guid()函数吗?或者类似的吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问 PostgreSQL中有 sys_guid()函数吗?或者类似的吗相关的知识,希望对你有一定的参考价值。

参考技术A

有的。不过默认的安装并未带这些函数,是需要作为扩展SQL安装上去的。函数名为uuid开头的,类似uuid_generate_xxx。

另外,PostgreSQL从9.1开始安装的方式有些不同,这些需要再搜索。

我用的PostgreSQL 9.3, 使用命令create extension "uuid-oosp"安装, 如下图:

成功安装之后,就可以使用类似sys_guid的函数uuid_generate_v4了,如下,

追问

按照您说的 出现以下问题:
错误: 无法打开扩展控制文件 "D:/PG/share/extension/uuid ossp.control": No such file or directory
请问您知道 这是怎么回事吗? 这个文件 我的目录下 确实是有的。

追答

是不是命令写错了? 扩展名称是uuid-ossp, 中间是横杠,不是空格!
或者说以管理员身份执行pgAminIII或使用的工具试试.

追问

又变成
无法加载库:uuid-ossp.dll了 这东西怎么莫名其妙呢。。。

追答

你看看在PostgreSQL安装目录的lib下有没有这个dll, 应该在此目录中的。

追问

谢谢你的帮忙,问题解决了一大部分 谢谢。

本回答被提问者和网友采纳

postgresql支持sys_guid()

CREATE or REPLACE FUNCTION "sys_guid"()
RETURNS "pg_catalog"."varchar" AS
$BODY$
DECLARE
v_seed_value varchar(32);
BEGIN
select
md5(
inet_client_addr()::varchar ||
timeofday() ||
inet_server_addr()::varchar ||
to_hex(inet_client_port())
)
into v_seed_value;


return (substr(v_seed_value,1,8) ||
substr(v_seed_value,9,4) ||
substr(v_seed_value,13,4) ||
substr(v_seed_value,17,4) ||
substr(v_seed_value,21,12));
END;
$BODY$
LANGUAGE ‘plpgsql‘ VOLATILE SECURITY DEFINER;
























以上是关于请问 PostgreSQL中有 sys_guid()函数吗?或者类似的吗的主要内容,如果未能解决你的问题,请参考以下文章

请问 postgresql中有 replace into或者 Merge into 这样的功能的语句吗 我想实现这样的功能啊

Oracle的SYS_GUID() 函数

如何在 OracleCommand INSERT INTO 之后检索 sys_guid() 的值

ORA-01427: 单行子查询在使用 GUID(sys_Guid()) 设置父子关系时返回多行

请问一下PostgreSQL啥意思 请详述 谢谢

oracle生成主键唯一的id,函数SYS_GUID()