2017-06-29 52 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

工作很好,謝謝。 –