PostgreSQL将文本转换成固定的长整型

news/2024/7/9 21:42:28 标签: 1024程序员节, postgresql

背景:某个表没有主键,但是有个字段名称(varchar类型)是唯一的,而一般习惯用BIGINT作为主键,于是想到将名称转成BIGINT主键。

考虑到:数字转文本我们常用md5算法,那么是否能用类似的方法实现这个需求?

然后再到了HASHTEXT方法,详见下面示例。

-- 将长整型转换成固定的文本
SELECT md5('123456');
-- e10adc3949ba59abbe56e057f20f883e

SELECT md5('A123456');
-- 507f513353702b50c145d5b7d138095c

-- 比如:用序列生成一些字符串可以这样:
SELECT id,md5(id::varchar) from generate_series(1, 2) id;
--1	c4ca4238a0b923820dcc509a6f75849b
--2	c81e728d9d4c2f636f067f89cc14862c


-- 将文本转换成固定的长整型
SELECT HASHTEXT('A123456');
-- 493687159
SELECT ABS(HASHTEXT('A123456'))::BIGINT;
-- 493687159

-- 为了好看点,可以加个固定值
SELECT ABS(HASHTEXT('A123456'))::BIGINT+1000000000000000;
-- 1000000493687159,A123456

SELECT ABS(HASHTEXT('A1234567'))::BIGINT+1000000000000000;
-- 1000001713566073,A1234567


http://www.niftyadmin.cn/n/5120629.html

相关文章

设计模式中的黄金原则:引领你的代码风格,提升可维护性与扩展性

中国的先贤说过: 有道无术,术可求.有术无道,止于术. 术指的是技能、技术或方法,而道指的是原则、道德、智慧和理念。 西方古代的哲人也说过同样的话: 智慧之路从感性开始,却终极于理性.为什么要说设计原则呢, 因为设计模式通常需要遵循一些设计原则&…

R语言的极值统计学、分位数回归、机器学习方法

受到气候变化、温室效应以及人类活动等因素的影响,自然界中极端高温、极端环境污染、大洪水和大暴雨等现象的发生日益频繁;在人类社会中,股市崩溃、金融危机等极端情况也时有发生;今年的新冠疫情就是非常典型的极端现象。研究此类…

一文搞定,JMeter的三种参数化方式

1、Test Plan 中添加变量 可以在 Test Plan 中设置好添加变量,变量名可以在任意的位置使用,比如说在线程组中直接用${ 变量名 }方式引用,步骤如下: 1)设置变量名和变量值 2)添加线程组 3)添…

SpringBoot篇---第三篇

系列文章目录 文章目录 系列文章目录一、Spring Boot中的监视器是什么?二、 如何使用Spring Boot实现异常处理?三、你如何理解 Spring Boot 中的 Starters? 一、Spring Boot中的监视器是什么? Spring boot actuator是spring启动框…

中创 | 数据泄露事件频发:卡西欧数据泄露涉及149个国家用户

49%的企业在过去两年中遭受了数据泄露 网络安全事件导致关键业务意外停机,平均损失为每小时20万美元\小时 一、卡西欧发生数据泄露事件 作为享有盛名的国际品牌,卡西欧40年来总销量突破1亿只,尽管卡西欧享誉全球,拥有顶级的网…

【HarmonyOS】元服务卡片展示动态数据,并定点更新卡片数据

【关键字】 元服务卡片、卡片展示动态数据、更新卡片数据 【写在前面】 本篇文章主要介绍开发元服务卡片时,如何实现卡片中动态显示数据功能,并实现定时数据刷新。本篇文章通过实现定时刷新卡片中日期数据为例,讲述展示动态数据与更新数据功…

使用imx 8m 测试matter协议功能

yocto这玩意太耗硬盘和cpu了,网上租个E5神机来编吧 参考网址: https://github.com/nxp-imx/meta-matter 请使用Ubuntu-20.04。18.04python版本太老 注意repo会出现此报错,可以无视: repo sync 同步不了代码 error: RPC failed;…

7.JavaScript-语句

题记 javascript语句 实例 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>实例</title> </head> <body><h1>我的网页</h1> <p id"demo">我的第一个段落。</p&g…