Frage

Einfache Frage, gibt es eine Möglichkeit, das doppelte Anführungszeichen in PostgreSQL wegzulassen?

Hier ist ein Beispiel, in dem select * from A; angegeben wird. Ich werde ERROR: relation "a" does not exist abrufen, und ich müsste select * from "A"; angeben, um das tatsächliche Ergebnis zu erhalten.

Gibt es eine Möglichkeit, die zweite und stattdessen die erste nicht unter PostgreSQL auszuführen?

War es hilfreich?

Lösung

Ihr Problem mit dieser Abfrage begann, als Sie Ihre Tabelle erstellt haben.Verwenden Sie beim Erstellen Ihrer Tabelle keine Anführungszeichen.

Verwenden Sie Folgendes:

CREATE TABLE a ( ... );

Nicht das:

CREATE TABLE "A" ( ... );

Letzteres macht es so, dass Sie es später immer wieder zitieren müssen.Ersteres macht es zu einem normalen Namen und Sie können SELECT * FROM a; oder SELECT * FROM A; verwenden

Wenn Sie Ihre Tabelle nicht einfach neu erstellen können, verwenden Sie die ALTER TABLE-Syntax:

ALTER TABLE "A" RENAME TO a;

Andere Tipps

doppelte Anführungszeichen sind erforderlich, wenn Sie in postgres Großbuchstaben in Ihren Tabellennamen aufnehmen

Um die Anforderungen zu vermeiden, benennen Sie Ihre Tabelle "a"

Postgresql weist ein bestimmtes besonderes Verhalten aufzu Anführungszeichen und Groß- / Kleinschreibung: Es faltet jede nicht in Anführungszeichen gesetzte Kennung in Kleinbuchstaben (auch zur Erstellungszeit) und arbeitet dann zwischen Groß- und Kleinschreibung.

Doppelte Anführungszeichen in Bezeichnern werden nur benötigt, wenn der Bezeichner (Tabellenname, Spaltenname usw.) (zum Zeitpunkt der Schemaerstellung) mit Großbuchstaben (einige oder alle) und zwischen doppelten Anführungszeichen definiert wurde.

In diesem Fall (von dem ich abraten möchte) müssen Sie diesen Bezeichner, wenn Sie ihn verwenden, auf die gleiche Weise eingeben: Groß- und Kleinschreibung beachten (Groß- / Kleinbuchstaben genau wie definiert eingeben) und zwischen doppelten Anführungszeichen.

In anderen Fällen können Sie Bezeichner ohne Anführungszeichen verwenden und immer ohne Berücksichtigung der Groß- und Kleinschreibung arbeiten.

Verwenden Sie keinen Großbuchstaben in Ihrem Tabellennamen oder Spaltennamen. Wenn Sie so etwas verwenden, benötigen die Postgres ein doppeltes Anführungszeichen, um darauf zugreifen zu können.

Bitte lesen Sie die detaillierte Beschreibung des Geschehens hier .

Die Namen der PostgreSQL-Servertabellen unterscheiden zwischen Groß- und Kleinschreibung, müssen jedoch standardmäßig in Kleinbuchstaben geschrieben werden. Wenn Sie CREATE TABLE AAA eingeben, wird dieser vor der Ausführung der Abfrage zu CREATE TABLE aaa.

Namen in doppelten Anführungszeichen behalten ihren Fall bei, sodass Sie nach CREATE TABLE "AaA" die Tabelle AaA erhalten und diese immer wieder in doppelte Anführungszeichen schreiben müssen.

Habe keine Ahnung warum sie das getan haben :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top