Столкнулся с проблемой удаления одного индекса таблицы в PostgreSQL.
Индекс точно есть, его можно проверить:
SELECT * FROM pg_indexes;
Стандартная команда удаления не срабатывала и я не мог понять почему:
DROP INDEX mytabin;
Вызов этой команды выдавал ошибку:
ERROR: ОШИБКА: индекс "mytabin" не существует
SQL state: 42704
Пришлось повнимательнее рассматривать официальную документацию, чтобы разглядеть в ней возможные причины ошибки.
И да. Мне удалось наткнуться на решение проблемы.
Решение проблемы удаления индекса в PostgreSQL
Индекс в PostgreSQL может не удалять по причине отсутствия схемы данных при обращении к имени самого индекса.
Это значит, что в команде DROP INDEX нужно сначала написать название схемы данных, затем поставить точку и только после точки написать имя индекса.
Ниже пример со схемой данных «scheme1«:
DROP INDEX scheme1.mytabin;
Грустно только то, что интерфейс pgAdmin не подсказывает на возможное отсутствие написания схемы данных и приходится искать решение в сети.
Информационные ссылки
Официальный сайт WEB-оболочки pgAdmin — https://www.pgadmin.org
Официальный сайт СУБД PostgreSQL — https://www.postgresql.org
Создание индекса — Команда CREATE INDEX — https://postgrespro.ru/docs/postgresql/14/sql-createindex
Удаление индекса — Команда DROP INDEX — https://postgrespro.ru/docs/postgresql/14/sql-dropindex
Представление pg_indexes — https://postgrespro.ru/docs/postgresql/14/view-pg-indexes