在postgre中创建newguid()方法

论坛 期权论坛 脚本     
匿名技术用户   2021-1-3 01:23   48   0

Postgre不支持newid()方法,需要自己创建,方法:在Postgre中执行以下语句,就完成了newid()的创建。

CREATE or REPLACE FUNCTION "newid"() 
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; 

参考自: http://postgresql.1045698.n5.nabble.com/newid-in-postgres-td1879346.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP