Как ВСТАВИТЬ в таблицу Postgres с автоматически сгенерированным идентификатором - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь добавить в таблицу дубликат текущих строк с некоторыми изменениями.

У меня есть таблица, например, с 3 столбцами (id, col1, col2), и 2 строки (492d0a75, some_text1, some_text2).

Идентификатор Colume моей таблицы не автоинкрементирован, и я использую:

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

спящие аннотации для генерации уникального идентификатора.

Я хочу сделать что-то вроде этого:

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

Но не могу этого сделать, потому что id не будет уникальным.

Как я могу это сделать?

1 Ответ

0 голосов
/ 15 ноября 2018

Для этого я устанавливаю 'uuid-ossp'

Чтобы установить модуль uuid-ossp, вы используете оператор CREATE EXTENSION следующим образом:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

После этоготеперь я могу использовать uuid_generate_v4 () из postgres docs

И мой последний запрос выглядит так:

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