Bei der Verarbeitung von Tabellen in PostgreSQL stoßen wir möglicherweise auf Spaltennamen, die Schlüsselwörtern in der SQL-Sprache ähneln. Dies kann beim Schreiben von Abfragen zu Fehlern führen, da PostgreSQL möglicherweise versucht, Spaltennamen als Schlüsselwörter und nicht als Bezeichner zu interpretieren.
Um dieses Problem zu lösen, können wir den Spaltennamen in doppelte Anführungszeichen setzen, ihn so maskieren und verhindern, dass PostgreSQL ihn mit einem Schlüsselwort verwechselt.
Betrachten Sie beispielsweise die folgende Tabelle:
<code class="language-sql">CREATE TABLE my_table (id SERIAL PRIMARY KEY, name TEXT, year INTEGER);</code>
Angenommen, wir möchten eine neue Zeile in diese Tabelle einfügen und die Spalte „Jahr“ auf einen bestimmten Wert festlegen. Wenn wir die Abfrage wie folgt schreiben:
<code class="language-sql">INSERT INTO my_table (id, name, year) VALUES (1, 'John Doe', 1990);</code>
Wir erhalten Fehler in der Nähe des Schlüsselworts „year“, weil PostgreSQL versucht, es als reserviertes Wort zu interpretieren.
Um dies zu beheben, schließen wir „Jahr“ einfach in doppelte Anführungszeichen ein:
<code class="language-sql">INSERT INTO my_table (id, name, "year") VALUES (1, 'John Doe', 1990);</code>
Indem wir den Spaltennamen in Anführungszeichen setzen, weisen wir PostgreSQL an, ihn als Bezeichner und nicht als Schlüsselwort zu behandeln, sodass wir seinen Wert erfolgreich festlegen können.
Laut der PostgreSQL-Dokumentation ist ein „getrennter Bezeichner“ oder „quotierter Bezeichner“ ein Bezeichner, der in doppelte Anführungszeichen eingeschlossen ist. Sie werden immer als Identifikatoren erkannt und können nicht mit Schlüsselwörtern verwechselt werden. Dadurch können wir Schlüsselwörter als Spalten- oder Tabellennamen verwenden, ohne dass Fehler auftreten.
Das obige ist der detaillierte Inhalt vonWie entkomme ich schlüsselwortähnliche Spaltennamen in PostgreSQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!