|
Идентификаторы при вставке записей
|
|||
---|---|---|---|
#18+
Использую СУБД PostgreSQL, вставляю записи в таблицу Контакты, поле Контакт - поле c id. Вставку делаю записей при помощи PGCOPY. Вставляемые записи являются частью иерархического списка, у каждой записи есть поле Родитель - id родителя. Я получаю массив id вставляемых записей: Код: sql 1. 2.
затем заполняю поле Родитель из полученного массива id и через PGCOPY вставляю записи. Все хорошо работает, но если между получением массива id и вставкой записей, будет добавлена левая запись при помощи INSERT, то будет использован id из массива и иерархия нарушится. Вопрос такой: есть ли возможность в PostgreSQL забронировать некоторый диапазон id, то есть я получаю массив id, этот массив бронируется и при последующей вставке через INSERT с автоинкриментом id из этого массива не используются? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2019, 01:51 |
|
Идентификаторы при вставке записей
|
|||
---|---|---|---|
#18+
setval поможет ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2019, 18:56 |
|
Идентификаторы при вставке записей
|
|||
---|---|---|---|
#18+
Может LTREE? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2019, 10:26 |
|
Идентификаторы при вставке записей
|
|||
---|---|---|---|
#18+
polin11но если между получением массива id и вставкой записей, будет добавлена левая запись при помощи INSERT, то будет использован id из массива и иерархия нарушится. Не понятно. Такой проблемы не длолжно быть, если конкурентный INSERT вставляет тоже используя nextval(seq). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 09:30 |
|
|
start [/forum/topic.php?fid=53&msg=39856111&tid=1995051]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 413ms |
0 / 0 |