Mrfei 发表于 2016-11-16 09:47:28

DB2生成类似UUID的字符串GENERATE_UNIQUE()

  在生成诸如主键之类的字符串时, 以前我常用identity, 遗憾这类identity做外键时由于需要数据库迁移而导致发生变化, 不可靠, 因此UUID是一个不错的选择, 虽然性能差了一些.
  可惜DB2不提供生成UUID的方法, 但是提供了GENERATE_UNIQUE()函数来生成唯一字符串, 但是要求也不少.
  首先使用GENERATE_UNIQUE()函数生成的unique ID的列必须声明为FOR BIT DATA, 即在建表的时候需要指定该column为FOR BIT DATA类型.
  在插入数据的时候, 直接使用GENERATE_UNIQUE()函数就可以了.
  步骤如下, 首先定义一个TEST表

CREATE TABLE test(unique_id CHAR(13) FOR BIT DATA, name VARCHAR(20)
  然后测试插入数据

INSERT INTO test VALUES(GENERATE_UNIQUE(), 'Alex')
  select查询数据得到

UNIQUE_ID                                 NAME
-----------------------------               --------------------
x'20140303070226123986000000'               Alex
  详细解释在infocenter
  http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/index.jsp
页: [1]
查看完整版本: DB2生成类似UUID的字符串GENERATE_UNIQUE()