各数据库下生成UUID的方法

16 篇文章 0 订阅
13 篇文章 0 订阅

一、ORACLE

select sys_guid() from dual

查询效果:
在这里插入图片描述


二、MSSQL(SQLSERVER)

select newid()
--newid()生成了自带“-”36的uuid,要改为32位,需要自行替换
select replace(newid(),'-','')

查询效果:
在这里插入图片描述


三、MYSQL

select uuid()
--uuid()生成了自带“-”36的uuid,要改为32位,需要自行替换
select replace(uuid(),'-','')

查询效果:
在这里插入图片描述


四、DB2

方法一:自建UUID函数

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

  1. JAVA类
import java.util.UUID;
import COM.ibm.db2.app.UDF;

public class UDFUUID extends UDF{
    public static String uuid(){
        UUID uuid = UUID.randomUUID();
        //去掉中间的分隔
        String uid = uuid.toString().replaceAll("-", "");
        return uid;
    }
}
  1. 把JAVA类放到DB2函数库目录下去,放到IBM\SQLLIB\FUNCTION下
  2. 用DB2带的jdk编译一下,
    IBM\SQLLIB\java\jkd\bin\javac UDFUUID.java
  3. 注册函数
drop function uuid;
create function uuid()
  returns char(32)
  fenced
  variant
  no sql
  language java
  parameter style java
  external name 'UDFUUID!uuid';
  1. 查询效果:
select uuid() from sysibm.dual;



方法二:GENERATE_UNIQUE()

DB2不提供生成UUID的方法, 但是提供了GENERATE_UNIQUE()函数来生成唯一字符串, 但是要求也不少。
首先使用GENERATE_UNIQUE()函数生成的unique ID的列必须声明为FOR BIT DATA, 即在建表的时候需要指定该column为FOR BIT DATA类型.

//步骤如下, 首先定义一个TEST表
CREATE TABLE test(unique_id CHAR(13) FOR BIT DATA, name VARCHAR(20)
 
//然后测试插入数据
INSERT INTO test VALUES(GENERATE_UNIQUE(), 'Alex')

select查询数据得到:
在这里插入图片描述


五、HIVE

--
select replace(java_method("java.util.UUID","randomUUID"),'-',''); 



六、ACCESS

  1. 设置表结构
    在这里插入图片描述在这里插入图片描述
  2. 查询结果
    在这里插入图片描述
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值