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

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

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

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

sql 复制代码
-- 将长整型转换成固定的文本
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
相关推荐
数据知道13 小时前
PostgreSQL 核心原理:如何利用多核 CPU 加速大数据量扫描(并行查询)
数据库·postgresql
l1t20 小时前
DeepSeek总结的PostgreSQL的GPT推理SQL移植到DuckDB的性能优化方法
sql·gpt·postgresql
开开心心就好1 天前
发票合并打印工具,多页布局设置实时预览
linux·运维·服务器·windows·pdf·harmonyos·1024程序员节
数据知道1 天前
PostgreSQL 核心原理:系统内部的对象寻址机制(OID 对象标识符)
数据库·postgresql
失忆爆表症1 天前
01_项目搭建指南:从零开始的 Windows 开发环境配置
windows·postgresql·fastapi·milvus
数据知道2 天前
PostgreSQL实战:详解如何用Python优雅地从PG中存取处理JSON
python·postgresql·json
HoneyMoose2 天前
PostgreSQL 创建用户表的时候提示 user 错误
postgresql
吾日三省吾码2 天前
别只会“加索引”了!这 3 个 PostgreSQL 反常识优化,能把性能和成本一起打下来
数据库·postgresql
七牛云行业应用2 天前
Moltbook一夜崩盘:150万密钥泄露背后的架构“死穴”与重构实战
网络安全·postgresql·架构·高并发·七牛云
AskHarries2 天前
Debian 12 环境下 PostgreSQL 15 部署与安全配置
postgresql