Но таблица в моей базе данных PostgreSQL специально не цитируется.Это означает, что mytable существует, но «mytable» не существует.
Вы неправильно понимаете, что делают кавычки.В вашем случае (то есть без специальных символов в имени таблицы) двойные кавычки делают только то, что они делают имя чувствительным к регистру.Если у вас есть таблица с именем MyTable
, то
SELECT * FROM mytable;
работает, потому что она нечувствительна к регистру, а
SELECT * FROM "mytable";
нет, потому что она чувствительна к регистру.Однако
SELECT * FROM "MyTable";
будет работать, и это то, что вы ищете.
Другая проблема (как отметил @ IljaEverilä в комментариях) заключается в следующем:
SELECT * FROM "myschema.mytable"
, который postgres обрабатывает как таблицу с именем myschema.mytable
, потому что вы процитировали все это.Я предполагаю, что это то, что вы ищете:
SELECT * FROM "myschema"."mytable"
т.е. вам нужен отдельный идентификатор для схемы и отдельный для таблицы, к которой присоединяется .
.