CREATE
OR REPLACE FUNCTION "public"."new_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 COST 100
创建以上函数之后,进行sql查询,结果如下:
select new_guid()