PostgreSQL | Не удаляется индекс

PostgreSQL | Не удаляется индекс

Столкнулся с проблемой удаления одного индекса таблицы в PostgreSQL.

Индекс точно есть, его можно проверить:

SELECT * FROM pg_indexes;

Стандартная команда удаления не срабатывала и я не мог понять почему:

DROP INDEX mytabin;

Вызов этой команды выдавал ошибку:

ERROR: ОШИБКА: индекс "mytabin" не существует
SQL state: 42704

 

Пришлось повнимательнее рассматривать официальную документацию, чтобы разглядеть в ней возможные причины ошибки.

Не удаляется индекс таблицы из-за отсутствия схемы данных в PostgreSQL
Не удаляется индекс таблицы из-за отсутствия схемы данных в PostgreSQL

И да. Мне удалось наткнуться на решение проблемы.

 

Решение проблемы удаления индекса в PostgreSQL

Индекс в PostgreSQL может не удалять по причине отсутствия схемы данных при обращении к имени самого индекса.

Это значит, что в команде DROP INDEX нужно сначала написать название схемы данных, затем поставить точку и только после точки написать имя индекса.

Ниже пример со схемой данных «scheme1«:

DROP INDEX scheme1.mytabin;

Грустно только то, что интерфейс pgAdmin не подсказывает на возможное отсутствие написания схемы данных и приходится искать решение в сети.

 

Информационные ссылки

Официальный сайт WEB-оболочки pgAdminhttps://www.pgadmin.org

Официальный сайт СУБД PostgreSQLhttps://www.postgresql.org

Создание индекса — Команда CREATE INDEXhttps://postgrespro.ru/docs/postgresql/14/sql-createindex

Удаление индекса — Команда DROP INDEXhttps://postgrespro.ru/docs/postgresql/14/sql-dropindex

Представление pg_indexeshttps://postgrespro.ru/docs/postgresql/14/view-pg-indexes