Umgang mit Groß-/Kleinschreibung in PostgreSQL-Tabellen- und Spaltennamen
PostgreSQLs Behandlung von Tabellen- und Spaltennamen hängt davon ab, ob sie in Anführungszeichen gesetzt werden. Bei Bezeichnern ohne Anführungszeichen (wie myTable
) wird die Groß-/Kleinschreibung nicht beachtet, d. h. MyTable
, mytable
und MYTABLE
beziehen sich alle auf dasselbe Objekt. Bei Bezeichnern in Anführungszeichen (wie "MyTable"
) muss die Groß-/Kleinschreibung beachtet werden.
Dieser Unterschied verursacht häufig Probleme bei der Migration von Datenbanken, insbesondere von Systemen wie MSSQL, bei denen die Groß-/Kleinschreibung möglicherweise unterschiedlich gehandhabt wird. Wenn beispielsweise eine Tabelle mit dem Namen STD_TYPE_CODES
importiert wird und Sie versuchen, sie als std_type_codes
abzufragen, erhalten Sie eine Fehlermeldung, da PostgreSQL sie als unterschiedliche Objekte interpretiert.
Lösungen:
<code class="language-sql">SELECT * FROM "STD_TYPE_CODES";</code>
Dies ist jedoch bei zahlreichen Tischen umständlich.
Implizite Großschreibung von PostgreSQL: PostgreSQL wandelt Bezeichner ohne Anführungszeichen intern automatisch in Kleinbuchstaben um. Daher werden STD_TYPE_CODES
, std_type_codes
und HeLLo
alle als "std_type_codes"
.
Best Practice: Konsistente Benennung: Um zukünftige Probleme zu vermeiden, verwenden Sie beim Erstellen neuer Tabellen und Ansichten konsequent Namen ohne Anführungszeichen und Kleinbuchstaben.
Vorhandene Tabellen umbenennen: Für vorhandene Tabellen mit inkonsistenter Schreibweise verwenden Sie ALTER TABLE
:
<code class="language-sql">ALTER TABLE "FOO" RENAME TO foo;</code>
Das obige ist der detaillierte Inhalt vonWie löst man Probleme mit der Groß-/Kleinschreibung bei Tabellen- und Spaltennamen in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!