2013-09-12 5 views
0

У меня есть приложение, использующее JPA и Postgresql. У меня есть база данных, и мне нужно добавить поле в таблицу exsiting, которая должна быть автоматически увеличена. Мне нужно указать, что значения для новой записи всегда будут больше, чем предыдущая запись. Также мне нужно добавить значения для записи, которая существует ...Postgresql JPA увеличительное поле

Я думал, что поле id будет отвечать моим требованиям, но это не ... У меня есть первичный ключ, который генерируется последовательностью в PostgreSQL , но значения не всегда больше. Приложение используется многими параллельными клиентами.

+0

Ваша поговорка, что sequnce в PostgreSQL не возвращает значение, которое не всегда больше предыдущего? Или в чем проблема? –

ответ

1

Следующая SQL будет создать последовательность, изменить таблицу и использовать ее для генерации и установить значение по умолчанию в новой колонке:

CREATE SEQUENCE myid_seq; 
ALTER TABLE mytable ADD COLUMN myid bigint NOT NULL DEFAULT nextval('myid_seq'); 

Таким образом, число будет установлен в базе данных, когда новый строка вставлена. (т. е. нет проблем, если у вас много одновременных вставок). Существующие строки будут обновлены с уникальным значением для myid.

Вы можете добавить ограничение unicity, если оно вам нужно.

Смежные вопросы