идентификатор. При дропе ПК дропается и индекс. Но мне этот индекс надо сохранить и переименовать.
Повторно его создавать не хочется (много записей, долго выполняется миграция) но возможности удалить ПК без удаления индекса пока не нашел(
База данных Postgresql 12.
Мб кто-нибудь знает, есть ли такая возможность?
так стопе пока вы дропаете ПК)))) я все-таки повторю свой вопрос https://postgrespro.ru/docs/postgresql/10/sql-createfunction если нужно заменить функцию чтобы она возвращала другие параметры нужно удалить предыдущую а как это сделать если допустим нужно изменить тип результата count но чтобы эта замена работала только в моих запроса к БД - через WITH?
Не понял, да, дропаю ПК. Хочу сохранить его уникальный индекс
https://stackoverflow.com/a/67995627/15438576
pg_dump не подойдет, поскольку это миграция, и там только sql
> а как это сделать если допустим нужно изменить тип результата count Эээ... что?! > но чтобы эта замена работала только в моих запроса к БД - через WITH? Что это вообще значит?! ;) Вы можете подробнее объяснить, что Вам нужно?
Не думаю, что такое есть в коде. Могу только посоветовать выполнять миграцыю в два этапа: сначала безопасно создать индэкс(ы) на старой базе, без отключения клиентов. А потом быстро переделать всё остальное.
Ну да, так и делаю, create index concurrenlty + add primary key using index. Вот по доке тоже не нашел способов сохранять индекс, что кажется странным, поскольку технически это вроде не сложно (по идее, код пг не смотрел) а польза от этого может быть. Спасибо
Нет, такой возможности нет. Кстати, между PK и UNIQUE INDEX / CONSTRAINT (на NOT NULL поля) разница небольшая.
что непонятно drop function можно в With засунуть?
Ничего не понятно — предыдущие вопросы выглядели как набор слов, извините. ;( И нет, нельзя.
Покажите.
SELECT indexdef, ';' as demiliter FROM pg_indexes WHERE schemaname = 'public' сохранить в файл.sql запустить на новом месте
Я отвечал вот на этот вопрос: https://t.me/pgsql/316409 , а не на какой-то другой.
@ilyapisany суть вопроса сохранить индексы и перенести на новый комп? это можно сделать как написал выше
Нет, миграция, изменение структуры одной бд которая постоянно работает и будет работать)
то есть create function & drop funtion нельзя засунуть в with? а если мне нужно заменить ее действие только во всех запросах моего приложения?
можеть проще создать отдельную ? для вашего приложения ? )
> то есть create function & drop funtion нельзя засунуть в with? Да, нельзя. > а если мне нужно заменить ее действие только во всех запросах моего приложения? Придётся как-то выкручиваться (либо в базе, либо в приложении) — зависит от того, что и как можно менять.
+ других вариантов не вижу
Обсуждают сегодня