如何使用自动生成的ID插入Postgres表

时间:2018-11-14 16:32:38

标签: java sql postgresql hibernate insert

我正在尝试将具有某些更改的当前行的副本添加到表中。

我的桌子上有3个列(id,col1,col2), 和2行(492d0a75,some_text1,some_text2)。

我表的颜色ID不会自动增加,我使用:

@Id
@GeneratedValue(generator = "uuid_gen")
@GenericGenerator(name = "uuid_gen", strategy = "uuid2")
@Column(name = "id", length = 36)

休眠注释以生成unic id。

我想做这样的事情:

insert into mytable(id, col1, col2)
select id, col1, 'other_value'
from mytable;

但是不能这样做,因为id不会是unic。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

为此,我要安装'uuid-ossp'

要安装uuid-ossp模块,请使用CREATE EXTENSION语句,如下所示:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

之后,我现在可以使用postgres docs中的uuid_generate_v4()

最后的查询如下:

insert into mytable (id, col1, col2)
select uuid_generate_v4(), col1, 'other_value'
from mytable;