powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Изменить стратегию первичного ключа с Identity на sequece
3 сообщений из 3, страница 1 из 1
Изменить стратегию первичного ключа с Identity на sequece
    #40084800
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.Подскажите пожалуйста такой момент
Есть таблица А,в ней первинчый ключ генерируется как Identity
есть таблица Б в ней PK таблицы А является FK
обе таблицы уже наполнены данными

можно ли как то изменить стратегию генерации первичного ключа таблицы A на sequnce ,при этом чтобы не пострадали связи в таблице Б

на не заполненной таблице я делал это вот так

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
create sequence if not exists public.A_sequence;

alter table A
  alter column id drop IDENTITY if exists,
  alter column id
    set DEFAULT nextval('public.A_sequence');

update A
set id=default;
...
Рейтинг: 0 / 0
Изменить стратегию первичного ключа с Identity на sequece
    #40084807
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,

update A
set id=default; - лишнее

вам просто после
alter column id
set DEFAULT nextval('public.A_sequence');

надо будет ещё проставить select setval('public.A_sequence', (select max(id)+1000 from A));

+1000 - опционально, на всякий случай чтобы было видно по номерам где закончилась identity а где началось sequence наумерация.

PS: а зачем вам это понадобилось если не секрет?


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru
...
Рейтинг: 0 / 0
Изменить стратегию первичного ключа с Identity на sequece
    #40084816
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Maxim Boguk
O_79_O,

update A
set id=default; - лишнее

вам просто после
alter column id
set DEFAULT nextval('public.A_sequence');

надо будет ещё проставить select setval('public.A_sequence', (select max(id)+1000 from A));

+1000 - опционально, на всякий случай чтобы было видно по номерам где закончилась identity а где началось sequence наумерация.

PS: а зачем вам это понадобилось если не секрет?


--
Maxim Boguk
лучшая поддержка PostgreSQL: dataegret.ru



при Identity генерации хибернейт отключает батчинг,потому что ему нужны id чтобы закомитить транзакцию .

спасибо за совет )
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Изменить стратегию первичного ключа с Identity на sequece
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]