Não consigo encontrar documentação que descreva os formatos válidos de um nome de esquema do PostgreSQL. Eu sei que um nome de esquema não pode:
- comece com um número
- tem espaços
- começar com
pg_
O quê mais? Onde devo procurar?
postgresql
Ramon Tayag
fonte
fonte
pg_
sublinhado a esse link, como Nathan C mencionou .De acordo com a documentação , também não pode começar
pg_
como está reservado. Fora isso, parece bastante livre.fonte
this-is schema
e ainda seria um nome de esquema inválido.A resposta correta é a fornecida pelo gsiems. No entanto, quero ressaltar que o PostgreSQL possui regras sobre identificadores citados que você pode ter em mente. "Identificadores entre aspas podem conter qualquer caractere, exceto o caractere com código zero. (Para incluir aspas duplas, escreva duas aspas duplas.)" ... Existem também algumas restrições no caso de você querer examinar.
Portanto, se você quiser citar seus identificadores, poderá usar qualquer caractere que desejar (com exceção de \ 0). Mas se você não está citando seus identificadores, precisa seguir as regras descritas nessa página.
Eu queria salientar isso principalmente porque isso já me incomodou antes, especialmente as regras relativas a maiúsculas e minúsculas nos identificadores não citados (e os nomes dos esquemas contam como identificadores).
ATUALIZAR:
Como exemplo (não aplicável especificamente aos identificadores de esquema, mas igualmente aplicável a eles):
Esse pode ser um comportamento esperado para aqueles que têm experiência com o PostgreSQL (e talvez os padrões SQL), mas alguém que é novo no PG e vindo do ponto de vista de outros servidores de banco de dados (SQL Server ou Oracle, por exemplo) pode se deparar com esse comportamento e pergunto por que a tabela que eles acabaram de criar está ausente.
Talvez alguns manuais não recomendem o uso de identificadores entre aspas, mas o fato é que os identificadores entre aspas estão disponíveis para uso e podem ser usados. Além disso, muitos pacotes definem como política usar sempre identificadores entre aspas ao criar e acessar relações que não são minúsculas, por exemplo, PGAdmin III.
Por exemplo, este é o script gerado pelo PGAdmin III ao criar uma tabela através da interface do usuário:
Portanto, a única maneira de um usuário acessar essa tabela em uma consulta é consultando seu identificador entre aspas, ou seja
"TBLUSER"
,. Tentar acessar esta tabela em uma consulta com um identificador não citado resultará em falha na localização da relação, ou sejaTBLUSER
,.fonte