1. 程式人生 > >在postgre中建立newguid()方法

在postgre中建立newguid()方法

     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;