DB2中没有提供生成UUID的方法,一般我们常用的是CONCAT (HEX (RAND ()), HEX (RAND ())) 来生成UUID,但是大量生成的时候会产生重复数据,导致我们的唯一索引报错。

本次采用java的自定义函数方法来生成UUID,即用java代码的生成UUID方法来生成DB2的UUID

具体方法

很多数据库都提供了UUID/GUID函数,可DB2却没有,不知道IBM怎么想的,好在DB2提供的了自定义函数接口,而且支持JAVA,既然没有,提供JAVA自定义函数,也好啊,用JAVA写个UUID太容易了,几行代码,下面自己弄个UUID吧

1. JAVA类

 1 import java.util.UUID;
2 import COM.ibm.db2.app.UDF;
3
4 public class UDFUUID extends UDF{
5 public static String uuid(){
6 UUID uuid = UUID.randomUUID();
7 //去掉中间的分隔
8 String uid = uuid.toString().replaceAll("-", "");
9 return uid;
10 }
11 }

2.把JAVA类放到DB2函数库目录下去,放到IBM\SQLLIB\FUNCTION下
3.用DB2带的jdk编译一下,
   IBM\SQLLIB\java\jkd\bin\javac UDFUUID.java
4.注册函数

1 drop function uuid;
2 create function uuid()
3   returns char(32)
4   fenced
5   variant
6   no sql
7   language java
8   parameter style java
9   external name 'UDFUUID!uuid';

5.使用看看

values(uuid());

以后想怎么用就怎么用吧

参考资料:https://www.cnblogs.com/runningwater-table/p/4574768.html

DB2生成UUID, CONCAT (HEX (RAND ()), HEX (RAND ())) 排坑的更多相关文章

  1. linux c 生成uuid

    /********方法一**********/#include <stdio.h> #include <stdlib.h> #include <string.h> ...

  2. PHP生成 uuid

    // 生成UUID,并去掉分割符 function guid() { if (function_exists('com_create_guid')){ $uuid = com_create_guid( ...

  3. sql server 获取随机数函数RAND()和RAND(x)

    --RAND(x)返回一个随机浮点值v,范围在0~1之间(即0<=v<=1.0) --若指定一个整数参数x,则它被用作种子值,使用相同的种子数将产生重复序列.如果同一种子值多次调用RAND ...

  4. Java 生成 UUID

    1.UUID 简介 UUID含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Found ...

  5. php生成UUID

    UUID含义是 通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, O ...

  6. JS生成UUID的方法实例

    <!DOCTYPE html> <html> <head> <script src="http://libs.baidu.com/jquery/1. ...

  7. java 生成UUID

    UUID(Universally Unique Identifier)全局唯一标识符,是一个128位长的数字,一般用16进制表示. 算法的核心思想是结合机器的网卡.当地时间.一个随即数来生成UUID, ...

  8. Oracle数据库生成UUID

    从Data Ghost的blog得知,原来可以用Oracle来生成UUID,做法很简单,如下: select sys_guid() from dual;  数据类型是 raw(16) 有32个字符.

  9. java生成UUID通用唯一识别码 (Universally Unique Identifier)

    转自:http://blog.csdn.net/carefree31441/article/details/3998553 UUID含义是通用唯一识别码 (Universally Unique Ide ...

  10. (转)java生成UUID通用唯一识别码 (Universally Unique Identifier)

    (原文链接:http://blog.csdn.net/carefree31441/article/details/3998553)   UUID含义是通用唯一识别码 (Universally Uniq ...

随机推荐

  1. abc289g题解

    考虑枚举卖出的物品个数\(i\),把\(b_i\)从大到小排序. 题目的某人会买物品的条件转化为\(b_i\geq p_j-c_j\),这说明卖出的物品的集合是排序后\(b\)的一段前缀,且卖出\(i ...

  2. css初始化、background属性、jquery选择器模糊匹配、canvas

    1.css初始化 2.background 3.jquery选择器模糊匹配 4.canvas画多边形 5.通过css设置canvas背景图片 6.js动态生成变量名

  3. golang中自带base64编码和解码

    package main import ( "encoding/base64" "fmt" "log" ) func main() { in ...

  4. 解决“chrome正受到自动测试软件的控制”信息栏显示问题

    在使用Selenium WebDriver启动谷歌浏览器Chrome时,在新启动的浏览器地址栏下方经常会显示一行提示信息:"chrome正受到自动测试软件的控制",英文的就是&qu ...

  5. pg copy用法

    postgresql copy用法1,导出表数据1)导出test表数据到txt copy test to '/home/jinli/test.txt'; 2)导出test表数据到csv copy te ...

  6. mac 打开活动监视器(任务管理器)

    打开方式 1.快捷键 command+option+esc 选择需要强制退出的app 2.通过菜单 需要查看完整的占用率 应用程序=>实用工具=〉活动监视器

  7. docker-compose实践(携程apollo项目)

    docker-compose使用开源镜像启动容器 以携程apollo项目为例,使用docker-compose部署单节点模式 创建apollo文件夹,vim一个新的docker-compose.yam ...

  8. oracle 实例无法启动和初始化

    1 先看oracle的监听和oracle的服务是否都启动了.启动oracle监听:cmd的命令行窗口下,输入lsnrctl start,回车即启动监听.2 查看oracle的sid叫什么,比如创建数据 ...

  9. 2202.10.11 CSP-S 2021 测试总结

    2022.10.11 CSP-S 2021 测试总结 这场打的好心累, \(T1\) 想了 \(1\) 个多小时才想出来的, \(T2\),\(T4\)题意赛时还没读明白. \(T1\):廊桥分配 \ ...

  10. Jmeter六、采样器解析

    一.HTTP request sampler 默认端口:80 协议protocol:http,https,file 参数中有特殊字符,勾选编码encode send files with reques ...