Ошибка говорит о том, что таблица не существует в базе данных, пока она существует - PullRequest
0 голосов
/ 19 июня 2020

Я извлек список имен таблиц в базе данных, используя этот sql запрос:

"SELECT table_name from information_schema.tables"

Я получил этот список:

    table_name
1   main_table
2   kp_table
3   ids_table
4   main_logs

Затем я хочу извлечь таблицу ids_table :

"SELECT * from ids_table"

Итак, желаемый результат - получить эту таблицу, но я получаю эту ошибку:

Error: Failed to prepare query: ERROR:  relation "ids_table" does not exist
LINE 1: SELECT * from ids_table

Почему это происходит? Почему я получаю из первого запроса его имя, но потом он говорит мне, что его не существует?

Ответы [ 2 ]

1 голос
/ 19 июня 2020

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

Другая распространенная возможность состоит в том, что схема является чем-то неожиданным, и вы должны ссылаться на схему. Для этого включите в запрос схему:

select table_schema, table_name
from information_schema.tables

Другой возможный вариант - скрытые символы, например пробелы. Вы можете убедиться, что проблема в этом, добавив разделители, поэтому проверьте имена:

select '|' || table_name || '|'
from information_schema.tables
0 голосов
/ 19 июня 2020

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

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