postgresql数据库中使用使用UUID
目录
问题现象:
问题分析:
解决方法:
问题现象:
今天在项目学习中,需要给数据添加一个id,组长要求使用UUID.
问题分析:
由于我们的项目中使用的是postgresql数据库,那么如果在postgresql语句中使用UUID呢?
正常来说很多小伙伴应该都试过在java中使用 java.util.UUID 这个工具类吧!
这确实是个很方便的工具类,然而我在想的是,直接在sql语句中使用uuid,为什么要这样做呢?
其实答案很简单,就是因为,如果直接操作sql语句完成dao操作就可以节省很多时间;
试想一下:假如你从已有的数据库表的数据中做一个select统计,然后你又需要将这些统计好的数据(结果集)插入到某个统计表中;每条记录都需要一个id,这种情况下你会怎么操作呢?
也许有人会这样做,首先编写一个sql语句去执行 select 统计操作,然后将结果集封装成实体类对象传到后端,再用java.util.UUID工具类给这个对象的 id 属性 添加一个 随机的uuid值,然后再执行一个insert操作,将数据插入到数据库统计表中去.
嗯,这个想法很不错,是再正常不过的逻辑,只是缺点也很明显,那就是效率会很低,
假如你需要统计的数据是以万,十万等更大的单位量的话,这个效率低的现象就会非常的明显.
因为从数据库select统计的结果集数据映射到java后端的实体类和调用java函数添加UUID的整个程序中,消耗的时间,远比你直接从sql中操作UUID要多很多;
在sql语句中添加uuid的话,就可以在select统计的过程中就可以操作了,因此获得的结果集中就直接带有了id字段值,同时利用sql中的查询插入结构表达式:
insert into table2 select xxx,yyy,zzz from table2
也比在java后端中分成select和insert两个dao操作数据库要更快.
那么在了解了sql的好处之后,就要和大家分享一下该如何实现了!
步骤如下:
1.安装 uuid-ossp 文件:
在postgresql数据库中,是不能直接使用UUID函数的,需要手动安装 uuid 的相关文件,才能应用UUID相关的函数.
2.调用UUID的相应函数:
在安装了 uuid-ossp 文件后,通过 select 语句 调用UUID的相应函数即可获取到随机id;
解决方法:
1.安装 uuid-ossp 文件,在sql编辑器中编写并执行该语句:
create extension "uuid-ossp" ;
2.调用UUID的相应函数,:
select uuid_generate_v4() 或 select uuid_generate_v1() 皆可.
postgresql数据库中使用使用UUID相关推荐
- 详解PostgreSQL数据库中的两阶段锁
点击上方"蓝字" 关注我们,享更多干货! 数据库中的对象是共享的,假如不同的用户同时修改某个对象,就会出现数据错乱,从而破坏数据库的数据一致性,违反事务的隔离性原则. 为了满足隔离 ...
- PostgreSQL 数据库中 DISTINCT 关键字的 4 种用法
文章目录 DISTINCT DISTINCT ON IS DISTINCT FROM 聚合函数与 DISTINCT 大家好,我是只谈技术不剪发的 Tony 老师.PostgreSQL 不但高度兼容 S ...
- 【PostgreSQL与UDIG】Udig导入Postgresql数据库中矢量数据无法显示的问题
Udig导入Postgresql数据库中矢量数据无法显示的问题 编程小白,记录学习中遇到的问题,希望可以帮助到其他的人. 一.问题描述 -----首先利用PostGIS将矢量数据导入postgreSQ ...
- 删除PostgreSQL数据库中的所有表
1.使用navicat建立连接 代码中的配置: jdbc.driverClassName=org.postgresql.Driver jdbc.url=jdbc:postgresql://localh ...
- PostgreSQL数据库中的角色(Role)、用户(User)、模式(Schema)
文章目录 PostgreSQL数据库中的角色(Role).用户(User).模式(Schema) 角色(Role)和用户(User) 角色操作 CREATE ROLE 创建角色 ALTER ROLE修 ...
- 知识分享之PostgreSQL——数据库中的模式(Schema)
知识分享之PostgreSQL--数据库中的模式(Schema) 背景 日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列 ...
- postgresql数据库中多个Schemas互相访问
背景: 用postgresql创建了一个数据库userDataBase,在这个数据库中创建了Schemas userA,Schemas userB,Schemas userC三个Schemas之后,给 ...
- 查看PostgreSQL数据库中所有表
作为曾经干过运维的我来说,或许对大部分运维人员来说,不能依靠管理工具来操作数据库,如pgAdmin,经常远程登录到某一台数据库服务器,使用命令行的方式查询数据库中的表. 获取当前db中所有的表信息. ...
- 数据库——postgresql数据库中standard_conforming_strings对‘\\’的影响
问题描述:一直用正则表达式 ('\\d{10}')来查询以数字开头的,并且是十个数字的值,' \\d '代表的是以数字开头,一直都是ok的,突然有一天' \\d '不再起作用,查了一上午都没发现是什么 ...
最新文章
- Spring Cloud Alibba教程:如何使用Nacos作为配置中心
- Nagios监控部署(四)--被监控主机配置
- copy,mutableCopy,retain区别
- 推荐几个复刻真实产品的开源项目!学起来!
- 启动mysql的innodb monitor功能
- 开源配置管理平台-Apollo
- 关于递归三要素的理解
- Firefox 下载、附加组件、Flash插件、缓存位置(附加Chrome下载和Opera下载)
- NATS服务器部署及测试
- Java 源码--Arrays
- 一本书,给你把卷积神经网络(CNN)安排得明明白白
- 进销存excel_excel进销存人人都会的制作方法
- 主流NoSQL数据库评测之HandlerSocket
- 【FiddlerScript】利用FiddlerScript抓包保利威下载
- 西门子S7-1200PLC控制步进电机的组态编程和具体步骤
- 浏览器在线视频播放加速方法——直接修改网页代码实现加速
- 浅析TVS管的响应时间与TVS管伏安特性曲线
- 应届生 实习生 社招最常用招聘网站
- 微信大数据挑战赛决赛方案:微信视频号推荐算法
- 金笛全新技术架构,鲲鹏击浪从兹始