Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Идентификаторы при вставке записей 
:(
    Опции темы
polin11
Дата 1.9.2019, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 6.6.2015

Репутация: нет
Всего: нет



Использую СУБД PostgreSQL, вставляю записи в таблицу Контакты, поле Контакт - поле c id.
Вставку делаю  записей при помощи PGCOPY.
Вставляемые записи являются частью иерархического списка,
у каждой записи есть поле Родитель - id родителя. 
Я получаю массив id вставляемых записей:
Код

SELECT array_agg(nextval(seq)) "arr"
FROM generate_series(1,  10 ), pg_get_serial_sequence("Контакты", "Контакт") seq

затем заполняю поле Родитель из полученного массива id и через PGCOPY вставляю записи.
Все хорошо работает, но если  между получением массива id и вставкой записей, 
будет добавлена левая запись при помощи INSERT, 
то будет использован id из массива и иерархия нарушится. 
Вопрос такой: есть ли возможность в PostgreSQL забронировать некоторый диапазон 
id, то есть я получаю массив id, этот массив бронируется и при последующей 
вставке через INSERT с автоинкриментом id из этого массива не используются.
PM MAIL   Вверх
Akina
Дата 1.9.2019, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 453



Цитата(polin11 @  1.9.2019,  02:59 Найти цитируемый пост)
Вопрос такой: есть ли возможность в PostgreSQL забронировать некоторый диапазон 
id, то есть я получаю массив id, этот массив бронируется и при последующей 
вставке через INSERT с автоинкриментом id из этого массива не используются. 

Нет. Вернее, да, но нет.

У Вас всё сделано через то самое место... изваините за грубость. Сделайте нормальный процесс - грузите пакетно данные (все! не кусочек, что для одной таблицы) в SP, и пусть распихивает это по таблицам с организацией правильной ссылочной целостности.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.1054 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.