PostgreSQL Команды, не дающие результата - PullRequest
0 голосов
/ 23 апреля 2020

В моей базе данных есть таблица, которая не дает результата, когда я запускаю запрос через командную строку.

Например, если я наберу:

select * from <table>

Ничего не происходит. Терминал перестает отвечать до тех пор, пока я не нажму ^C для отмены запроса.

Все остальные таблицы работают нормально, я не уверен, что вызывает эту ошибку. Это только начало происходить из ниоткуда.

1 Ответ

0 голосов
/ 23 апреля 2020

Хорошо, я нашел способ ее решить.

Первый запуск:

select * from pg_locks where not granted;

Затем из этой таблицы найдите идентификатор отношения. Он должен находиться в столбце под отношением.

Затем выполните эту команду:

select * from pg_locks where relation = <relationid>;

После этого определите pid отношения, которое предоставило значение true. Должен быть предоставленный столбец с логическими значениями t и f. Определите pid этого отношения.

Наконец, запустите:

select pg_terminate_backend(<pid>);

Затем вы сможете получить доступ к таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...