在生成诸如主键之类的字符串时, 以前我常用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