Предполагая, что вы выполняете обе команды в одной и той же базе данных, наиболее вероятным объяснением является то, что "schema1" не называется тем, чем вы думаете.После него будет пробел или еще что-то подобное.
Попробуйте что-то вроде следующего, чтобы увидеть, есть ли там что-то странное.
SELECT ':' || nspname || ':' FROM pg_namespace;
РЕДАКТИРОВАТЬ: исправленная информацияfrom poster
Результаты вашего запроса не показали ничего, кроме исходного имени.Я создал имя схемы в верхнем регистре и отображается в верхнем регистре при выводе \ dn
Но это не то, что вы показали, не так ли?
postgres=# \dn
List of schemas
Name | Owner<br>
---------------+----------
schema1 | user1
public | postgres
(2 rows)
Итак - если это на самом деле верхний регистр, это означает, что вы принудительно вводите его в верхний регистр, заключая его в двойные кавычки при создании.
PostgreSQL обычно сворачивает идентификаторы в нижний регистр (обычно предполагается, что идентификаторы SQLбыть нечувствительным к регистру)
Так что, если при создании вы принудительно вводите его в верхний регистр, вы должны принудительно сбросить его и в верхнем регистре.
DROP SCHEMA "SCHEMA1" CASCADE;