目录

问题现象:

问题分析:

解决方法:


问题现象:

今天在项目学习中,需要给数据添加一个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相关推荐

  1. 详解PostgreSQL数据库中的两阶段锁

    点击上方"蓝字" 关注我们,享更多干货! 数据库中的对象是共享的,假如不同的用户同时修改某个对象,就会出现数据错乱,从而破坏数据库的数据一致性,违反事务的隔离性原则. 为了满足隔离 ...

  2. PostgreSQL 数据库中 DISTINCT 关键字的 4 种用法

    文章目录 DISTINCT DISTINCT ON IS DISTINCT FROM 聚合函数与 DISTINCT 大家好,我是只谈技术不剪发的 Tony 老师.PostgreSQL 不但高度兼容 S ...

  3. 【PostgreSQL与UDIG】Udig导入Postgresql数据库中矢量数据无法显示的问题

    Udig导入Postgresql数据库中矢量数据无法显示的问题 编程小白,记录学习中遇到的问题,希望可以帮助到其他的人. 一.问题描述 -----首先利用PostGIS将矢量数据导入postgreSQ ...

  4. 删除PostgreSQL数据库中的所有表

    1.使用navicat建立连接 代码中的配置: jdbc.driverClassName=org.postgresql.Driver jdbc.url=jdbc:postgresql://localh ...

  5. PostgreSQL数据库中的角色(Role)、用户(User)、模式(Schema)

    文章目录 PostgreSQL数据库中的角色(Role).用户(User).模式(Schema) 角色(Role)和用户(User) 角色操作 CREATE ROLE 创建角色 ALTER ROLE修 ...

  6. 知识分享之PostgreSQL——数据库中的模式(Schema)

    知识分享之PostgreSQL--数据库中的模式(Schema) 背景 日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列 ...

  7. postgresql数据库中多个Schemas互相访问

    背景: 用postgresql创建了一个数据库userDataBase,在这个数据库中创建了Schemas userA,Schemas userB,Schemas userC三个Schemas之后,给 ...

  8. 查看PostgreSQL数据库中所有表

    作为曾经干过运维的我来说,或许对大部分运维人员来说,不能依靠管理工具来操作数据库,如pgAdmin,经常远程登录到某一台数据库服务器,使用命令行的方式查询数据库中的表. 获取当前db中所有的表信息. ...

  9. 数据库——postgresql数据库中standard_conforming_strings对‘\\’的影响

    问题描述:一直用正则表达式 ('\\d{10}')来查询以数字开头的,并且是十个数字的值,' \\d '代表的是以数字开头,一直都是ok的,突然有一天' \\d '不再起作用,查了一上午都没发现是什么 ...

最新文章

  1. Spring Cloud Alibba教程:如何使用Nacos作为配置中心
  2. Nagios监控部署(四)--被监控主机配置
  3. copy,mutableCopy,retain区别
  4. 推荐几个复刻真实产品的开源项目!学起来!
  5. 启动mysql的innodb monitor功能
  6. 开源配置管理平台-Apollo
  7. 关于递归三要素的理解
  8. Firefox 下载、附加组件、Flash插件、缓存位置(附加Chrome下载和Opera下载)
  9. NATS服务器部署及测试
  10. Java 源码--Arrays
  11. 一本书,给你把卷积神经网络(CNN)安排得明明白白
  12. 进销存excel_excel进销存人人都会的制作方法
  13. 主流NoSQL数据库评测之HandlerSocket
  14. 【FiddlerScript】利用FiddlerScript抓包保利威下载
  15. 西门子S7-1200PLC控制步进电机的组态编程和具体步骤
  16. 浏览器在线视频播放加速方法——直接修改网页代码实现加速
  17. 浅析TVS管的响应时间与TVS管伏安特性曲线
  18. 应届生 实习生 社招最常用招聘网站
  19. 微信大数据挑战赛决赛方案:微信视频号推荐算法
  20. 金笛全新技术架构,鲲鹏击浪从兹始

热门文章

  1. 用c语言编程图书管理系统,C语言能写图书管理系统吗
  2. 又现信息泄露事件!融云揭秘通讯安全守护之道
  3. 定位方法之xpath定位
  4. 前端开发的设计模式(此文章通俗易懂)
  5. 好用的手机记事本软件叫什么
  6. 微软最新认证提前看之微软认证技能专家
  7. 《操作系统真相还原》二
  8. 今日科技联播:新型VR头盔可令盲人重获光明 ,联通阿里成立合资企业“云粒智慧”...
  9. 多线程编程技术开发资料
  10. 数据可视化知识总结(一)