Ich kann anscheinend keine Dokumentation finden, die die gültigen Formate eines PostgreSQL-Schemanamens beschreibt. Ich weiß, dass ein Schemaname nicht:
- Beginnen Sie mit einer Zahl
- Leerzeichen haben
- beginnen mit
pg_
Was sonst? Wo soll ich suchen
quelle
pg_
diesem Link einen Unterstrich hinzufügen , wie Nathan C erwähnt hat .Laut Dokumentation kann es auch nicht damit beginnen,
pg_
da es reserviert ist. Davon abgesehen sieht es ziemlich frei aus.quelle
this-is schema
und es wäre immer noch ein ungültiger Schemaname.Die richtige Antwort ist die von gsiems. Ich möchte jedoch darauf hinweisen, dass PostgreSQL Regeln für zitierte Bezeichner enthält, die Sie möglicherweise berücksichtigen. "Bezeichner in Anführungszeichen können ein beliebiges Zeichen enthalten, mit Ausnahme des Zeichens mit dem Code Null. (Um ein doppeltes Anführungszeichen einzuschließen, schreiben Sie zwei doppelte Anführungszeichen.)" ... Es gibt auch einige Einschränkungen für den Fall, den Sie möglicherweise betrachten möchten.
Wenn Sie also Ihre Bezeichner angeben möchten, können Sie ein beliebiges Zeichen verwenden (mit Ausnahme von \ 0). Wenn Sie Ihre Bezeichner jedoch nicht angeben, müssen Sie die auf dieser Seite aufgeführten Regeln befolgen.
Ich wollte darauf hinweisen, vor allem, weil es mich schon einmal gebissen hat, insbesondere die Regeln für Groß- und Kleinschreibung in nicht zitierten Bezeichnern (und Schemanamen gelten als Bezeichner).
AKTUALISIEREN:
Als Beispiel (nicht speziell für Schemakennungen, aber gleichermaßen für sie):
Dies ist möglicherweise ein zu erwartendes Verhalten für diejenigen, die Erfahrung mit PostgreSQL (und möglicherweise den SQL-Standards) haben, aber jemand, der neu in PG ist und vom Standpunkt anderer Datenbankserver (z. B. SQL Server oder Oracle) stammt, kann auf dieses Verhalten stoßen und Ich frage mich, warum die Tabelle, die sie gerade erstellt haben, fehlt.
Vielleicht empfehlen einige Handbücher , keine Anführungszeichen in Anführungszeichen zu verwenden , aber Tatsache ist, dass Anführungszeichen in Anführungszeichen zur Verfügung stehen und verwendet werden können. Darüber hinaus machen es viele Pakete zur Richtlinie, beim Erstellen und Zugreifen auf Beziehungen, die nicht vorhanden sind, immer Anführungszeichen in Anführungszeichen zu verwenden vollständig klein geschrieben, z. B. PGAdmin III.
Dies ist beispielsweise das Skript, das von PGAdmin III beim Erstellen einer Tabelle über die Benutzeroberfläche generiert wird:
Daher kann ein Benutzer in einer Abfrage nur auf diese Tabelle zugreifen, indem er sich auf den angegebenen Bezeichner bezieht, d
"TBLUSER"
. H. Der Versuch, in einer Abfrage mit einem nicht in Anführungszeichen gesetzten Bezeichner auf diese Tabelle zuzugreifen, führt dazu, dass die Beziehung nicht gefunden werden kann, dTBLUSER
. H.quelle