zoukankan      html  css  js  c++  java
  • 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函数库目录下去,放到IBMSQLLIBFUNCTION下
    3.用DB2带的jdk编译一下,
       IBMSQLLIBjavajkdinjavac 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

  • 相关阅读:
    stack 栈
    链表
    2018.09.08 DL24 Day1 总结
    10.07 WZZX Day2总结
    10.06 WZZX Day1总结
    Joseph问题 (线段树)
    [POI2006]TET-Tetris 3D
    10.05FZSZ Day2模拟总结
    Tarjan求LCA
    数据结构
  • 原文地址:https://www.cnblogs.com/livensummer/p/13255094.html
Copyright © 2011-2022 走看看