pg数据库使用uuid生成指令之使用sys_guid()或uuid_generate_v4()无效
问题:使用sys_guid()或uuid_generate_v4()无效。此处基于uuid_generate_v4 ()来定义,定义pg函数语法可。pg数据库没有sys_guid()函数,需要自定义一个。
·
问题:使用sys_guid()或uuid_generate_v4()无效
-- 使用:
SELECT sys_guid();
-- 或
SELECT uuid_generate_v4();
-- 试图生成uuid,执行指令后提示:
错误: 函数 uuid_generate_v4() 不存在
LINE 1: SELECT uuid_generate_v4()
^
HINT: 没有匹配指定名称和参数类型的函数. 您也许需要增加明确的类型转换.
环境确认:
pg版本【win版】:
SHOW server_version;
-- 15.3
查看当前已经安装插件:
SELECT * FROM pg_extension;
查看当前可用插件【包含uuid-ossp】:
SELECT * FROM pg_available_extensions;
创建拓展:
CREATE extension "uuid-ossp";
查看当前已经安装插件:
SELECT * FROM pg_extension;
验证:
SELECT uuid_generate_v4();
-- SELECT uuid_generate_v4();能够成功执行
SELECT sys_guid();
-- SELECT sys_guid();执行失败
pg数据库没有sys_guid()函数,需要自定义一个
此处基于uuid_generate_v4 ()来定义,定义pg函数语法可参考
CREATE FUNCTION sys_guid ()
RETURNS VARCHAR
LANGUAGE plpgsql
AS
$$
DECLARE
uuid VARCHAR;
BEGIN
SELECT REPLACE
( CAST ( uuid_generate_v4 () AS VARCHAR ), '-', '' ) INTO uuid;
RETURN uuid;
END;
$$;
再次验证:
更多推荐
已为社区贡献1条内容
所有评论(0)