DB2生成UUID, CONCAT (HEX (RAND ()), HEX (RAND ())) 排坑
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 ())) 排坑的更多相关文章
- linux c 生成uuid
/********方法一**********/#include <stdio.h> #include <stdlib.h> #include <string.h> ...
- PHP生成 uuid
// 生成UUID,并去掉分割符 function guid() { if (function_exists('com_create_guid')){ $uuid = com_create_guid( ...
- sql server 获取随机数函数RAND()和RAND(x)
--RAND(x)返回一个随机浮点值v,范围在0~1之间(即0<=v<=1.0) --若指定一个整数参数x,则它被用作种子值,使用相同的种子数将产生重复序列.如果同一种子值多次调用RAND ...
- Java 生成 UUID
1.UUID 简介 UUID含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准,也是被开源软件基金会 (Open Software Found ...
- php生成UUID
UUID含义是 通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, O ...
- JS生成UUID的方法实例
<!DOCTYPE html> <html> <head> <script src="http://libs.baidu.com/jquery/1. ...
- java 生成UUID
UUID(Universally Unique Identifier)全局唯一标识符,是一个128位长的数字,一般用16进制表示. 算法的核心思想是结合机器的网卡.当地时间.一个随即数来生成UUID, ...
- Oracle数据库生成UUID
从Data Ghost的blog得知,原来可以用Oracle来生成UUID,做法很简单,如下: select sys_guid() from dual; 数据类型是 raw(16) 有32个字符.
- java生成UUID通用唯一识别码 (Universally Unique Identifier)
转自:http://blog.csdn.net/carefree31441/article/details/3998553 UUID含义是通用唯一识别码 (Universally Unique Ide ...
- (转)java生成UUID通用唯一识别码 (Universally Unique Identifier)
(原文链接:http://blog.csdn.net/carefree31441/article/details/3998553) UUID含义是通用唯一识别码 (Universally Uniq ...
随机推荐
- Cupboard and Balloons CodeForces - 342C
Cupboard and Balloons CodeForces - 342C 找到不变的点 抓住不确定的点进行讨论 #include<iostream> #include<cmat ...
- 加载Assetbundle
using UnityEngine;using System.Collections;using UnityEngine.SceneManagement; /// <summary>/// ...
- 请求接口类型blob,下载文件
axiosGet () { var This = this var url = '/group1/M00/00/21/MejEvGOX_zOAL2kiAAAAUhB5Iqg138.txt?token= ...
- Java集合-LinkedHashSet
LinkedHashSet 重点: LinkedHashSet 不允许重复元素,与 HashSet的区别是:它是有序的 LinkedHashSet 底层结构是 数组table + 双向链表 [介绍] ...
- 如何查看win10的版本号。
1.设置--系统--关于 2..dxdiag 3.CMD中输入:slmgr /dlv 4.Winver
- c++基础代码练习考试必备(冒泡,求3*3矩阵对角线元素的积,求素数,密码验证)
1.求1-100之间的素数 int j; int i; for (i=2; i <= 100; i++) { for (j=2; j <= i; j++) { if (i%j == 0) ...
- CPU密集型和IO密集型与线程池的配置
CPU密集型任务应配置尽可能小的线程,如配置CPU数目+1个线程的线程池.由于IO密集型任务线程并不是一直在执行任务,则应配置尽可能多的线程,如2*CPU数目.
- bzoj 3924
动态点分治好题 首先我们考虑一个暴力做法: 每次修改之后选一个点作为根搜索整棵树,然后换根dp即可 考虑每次换根时,移向的点的消耗会减少子树代价之和*边权,而其余部分代价会增加剩余代价*边权 这样每次 ...
- Centos7 服务器安装jdk
给自己留个步骤 有些centos系统会自带openjdk,我们需要先卸载 首先输入java -version,验证是否有安装jdk 如果有,接着输入rpm -qa | grep java 来显示jd ...
- kafka工具的使用-发送数据
1.了解推送数据的是哪个topic,选择对应topic下面的partition分区 2.右侧界面选择Data,并点击『+』号: 3.可选择添加单个消息『add Single Message』或者添加多 ...