我尝试为一个表生成唯一的id,该表最初是在db2中使用以下方法完成的:
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
并手动将其放入查询中。
有人能在一个查询中建议一种方法吗?
1条答案
按热度按时间e5nqia271#
你必须强制交叉连接,类似这样:
通过这种方式,您可以为max id返回一个值,并使用该值生成新的值。
用hive生成代理密钥有点痛苦,很不幸。