Heim >Datenbank >MySQL-Tutorial >Wie kann ich schlüsselwortähnliche Spaltennamen (z. B. „Jahr') in PostgreSQL-INSERT-Anweisungen maskieren?

Wie kann ich schlüsselwortähnliche Spaltennamen (z. B. „Jahr') in PostgreSQL-INSERT-Anweisungen maskieren?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-14 09:41:44933Durchsuche

How Can I Escape Keyword-Like Column Names (e.g.,

Escape-Schlüsselwort-ähnliche Spaltennamen in PostgreSQL

Beim Erstellen von Abfragen in PostgreSQL kann es zu Fehlern kommen, wenn Sie auf Spaltennamen wie reservierte Schlüsselwörter stoßen. Zum Beispiel die Spalte „Jahr“.

Frage

Der Versuch, eine INSERT-Abfrage mit der Spalte „Jahr“ auszuführen, führt zu einem Fehler wie diesem:

<code class="language-sql">INSERT INTO table (id, name, year) VALUES ( ... );</code>

Lösung

Um dieses Problem zu beheben, schließen Sie den Spaltennamen „Jahr“ in doppelte Anführungszeichen ein:

<code class="language-sql">INSERT INTO table (id, name, "year") VALUES ( ... );</code>

Erklärung

Doppelte Anführungszeichen werden verwendet, um getrennte Bezeichner zu definieren, die verhindern, dass PostgreSQL den eingeschlossenen Text als Schlüsselwort interpretiert. Dadurch können Sie Spaltennamen verwenden, die reservierte Wörter enthalten, ohne einen Fehler auszulösen.

Wie in der PostgreSQL-Dokumentation angegeben:

"Der zweite Typ von Bezeichnern ist ein durch Trennzeichen oder Anführungszeichen getrennter Bezeichner. Er wird gebildet, indem eine beliebige Zeichenfolge in doppelte Anführungszeichen gesetzt wird ("). Begrenzte Bezeichner sind immer Bezeichner, keine Schlüsselwörter. Daher kann „select“ verwendet werden, um auf eine Spalte oder Tabelle mit dem Namen „select“ zu verweisen, und „select“ ohne Anführungszeichen wird als Schlüsselwort behandelt …“

Das obige ist der detaillierte Inhalt vonWie kann ich schlüsselwortähnliche Spaltennamen (z. B. „Jahr') in PostgreSQL-INSERT-Anweisungen maskieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn