Ich habe dieses seltsame Problem mit PostgreSQL 9.3 mit Tabellen, die mit Qoutes erstellt werden. Zum Beispiel, wenn ich eine Tabelle mit qoutes erstellen:PostgreSQL FEHLER: 42P01: Relation "[Tabelle]" existiert nicht
create table "TEST" ("Col1" bigint);
die Tabelle richtig erstellt wird, und ich kann sehen, dass die Zitate beibehalten werden, wenn Ansicht es im SQL-Bereich von pgAdminIII. Aber wenn ich die Datenbank abfrage, um die Liste aller verfügbaren Tabellen zu finden (unter Verwendung der folgenden Abfrage), sehe ich, dass das Ergebnis keine Anführungszeichen um den Tabellennamen enthält.
select table_schema, table_name from information_schema.tables where not table_schema='pg_catalog' and not table_schema='information_schema';
Da die Tabelle mit Zitaten erstellt wurde, kann ich nicht die Tabellennamen direkt aus der obigen Abfrage zurückgegeben verwenden, da es nicht notiert und führt den Fehler in der Überschrift geschrieben.
Ich könnte versuchen, die Tabellennamen mit Anführungszeichen in allen Abfragen zu umgeben, aber ich bin mir nicht sicher, ob es die ganze Zeit funktioniert. Ich suche nach einer Möglichkeit, die Liste der Tabellennamen zu erhalten, die im Ergebnis mit Anführungszeichen zitiert werden.
Ich habe das gleiche Problem mit Spaltennamen, aber ich hoffe, dass, wenn ich eine Lösung für die Tabellennamen Problem finden kann, eine ähnliche Lösung auch für Spaltennamen funktionieren wird.
+1 keine Anführungszeichen verwenden. – Othya
Stimmen Sie zu, dass die Verwendung von Anführungszeichen in PostgreSQL das Leben einfacher macht, aber in meinem Fall nicht immer möglich ist, da meine Anwendung die Datenbanken nicht erstellt. Es sollte in der Lage sein, Daten von PostgreSQL-Datenbanken von Drittanbietern zu lesen, und ich kann nicht steuern, wie Tabellen von anderen erstellt werden. In jedem Fall ist es überraschend, dass PostgreSQL mir nicht mitteilt, dass eine bestimmte Tabelle mit Anführungszeichen erstellt wurde, aber wenn ich einen nicht angegebenen Tabellennamen in einer Abfrage verwende, wird dies nicht zugelassen. –
es weiß automatisch, dass Zitate verwendet wurden, sobald dort ein Nicht-Kleinbuchstabe ist. Wenn also eine Tabelle als Test aufgelistet ist, bedeutet das, dass Sie die Groß-/Kleinschreibung beachten müssen. –