powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / изменить serial на bigserial
7 сообщений из 7, страница 1 из 1
изменить serial на bigserial
    #40073032
graywolf_too
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго дня

Подскажите кто знает, как заменить в табличке колонку, определенную как serial на bigserial ?
обычным ALTER TABLE "bigtable" ALTER COLUMN rn TYPE bigserial USING rn::bigserial; не выходит, нет такого типа

подменить serial на bigint и потом вручную добавить последовательность тоже не выходит, так как на таблицу завязано много других объектов и править их все нереально

как это сделать проще всего, если уже есть куча данных в таблице и куча зависимостей?
...
Рейтинг: 0 / 0
изменить serial на bigserial
    #40073035
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graywolf_too,

не существует типов serial или bigserial. Вот в смысле не существует. Это синтаксический сахар.
Код: sql
1.
2.
ALTER TABLE "bigtable" ALTER COLUMN rn TYPE bigint;
alter sequence bigtable_rn_seq as bigint; -- измените имя sequence если надо
...
Рейтинг: 0 / 0
изменить serial на bigserial
    #40073046
graywolf_too
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij,

это все так и есть, но
ALTER TABLE ТАБЛИЦА ALTER COLUMN rn TYPE bigint сделать не получится из-за множества зависимостей, представления в Postgre например не дают делать такие вещи, пока их не удалить ...

SQL Error [0A000]: ОШИБКА: изменить тип столбца, задействованного в представлении или правиле, нельзя

нет ли другого способа ?
...
Рейтинг: 0 / 0
изменить serial на bigserial
    #40073056
Фотография mefman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graywolf_too,
Гугл в помощь. Это в общем - то типовой кейс. Зависит от версии СУБД(в более новых - проще)
...
Рейтинг: 0 / 0
изменить serial на bigserial
    #40073063
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
graywolf_too, а представления вам и так менять придётся из-за смены типа данных в них.

begiin;
drop view ....
alter table
create view ...
commit;
...
Рейтинг: 0 / 0
изменить serial на bigserial
    #40073098
graywolf_too
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Melkij
graywolf_too, а представления вам и так менять придётся из-за смены типа данных в них.

begiin;
drop view ....
alter table
create view ...
commit;


очень много придется менять, но если делать нечего, то придется идти этим путем :(
...
Рейтинг: 0 / 0
изменить serial на bigserial
    #40073130
https://www.google.com/search?channel=fs&client=ubuntu&q=SQL+Error+%5B0A000%5D%3A+%D0%9E%D0%A8%D0%98%D0%91%D0%9A%D0%90%3A+%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C+%D1%82%D0%B8%D0%BF+%D1%81%D1%82%D0%BE%D0%BB%D0%B1%D1%86%D0%B0%2C+%D0%B7%D0%B0%D0%B4%D0%B5%D0%B9%D1%81%D1%82%D0%B2%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE+%D0%B2+%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B8+%D0%B8%D0%BB%D0%B8+%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B5%2C+%D0%BD%D0%B5%D0%BB%D1%8C%D0%B7%D1%8F]https://www.google.com/search?channel=fs&client=ubuntu&q=SQL Error [0A000]: ОШИБКА: изменить тип столбца, задействованного в представлении или правиле, нельзя
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / изменить serial на bigserial
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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