2017-06-29 112 views
0

我试图生成唯一的ID为在DB2使用下列本来做了一个表格:蜂巢生成ID

insert into database.table 
select next value for database.sequence, 
     current_timestamp, 
from source 

当序列具有确定的初始值(如25430)。

我目前使用的代码是:

insert into database.table 
select 
row_number() over() + select max(id) from table, 
from_unixtime(unix_timestamp()) 
from source; 

这是从嵌套的select语句不工作除了罚款,此刻我要运行

select max(id) from table 

,放入手动查询。

任何人都可以提出一种方法来做到这一点在一个查询?

回答

0

你必须强制交叉连接,这样的事情:

select 
... 
from source, 
(select max(id)as maxid from table) as m_id 
; 

这样,你得到你的最大的id一个值回来了,你可以用它来生成新的一个。

使用配置单元生成代理键是非常痛苦的,可悲的是。

+0

工作很好,谢谢。 –