Grossbuchstaben in Postgresql

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
brucker
User
Beiträge: 1
Registriert: Donnerstag 20. März 2008, 09:43

Ich habe in Postgresql Tabellennamen mit Großbuchstaben.
Beim Ausführen eines sql anweisung mit Python werden die Namen jedoch als kleingeschrieben interpretiert. Habe verschiedene db-module ausprobiert.
dbi mit odbc,
psycop2,
pgdb,
p8000.
Immer das selbe Ergebnis.
System: Windows XP SP2, Postgresql 8.2, python 2.5.

Im pgAdmin Query Fenster passiert das gleiche, hier kann man aber mit
Hochkomma tricksen: Insert into "FF" (silo0,silo1) Values(0.0,1.1)
in python:
sqlstring="Insert into "'"FF"'" (silo0,silo1) Values(0.0,1.1)"
cur.execute (sqlstring)
gibts leider keine Einträge.
Langsam gehen mir die Ideen aus.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

brucker hat geschrieben:Ich habe in Postgresql Tabellennamen mit Großbuchstaben.
Hallo brucker!

Willkommen im Python-Forum!

Ich habe leider keine Lösung für dich -- nur einen Hinweis. Wenn du es irgendwie beeinflussen kannst, dann schreibe die Tabellennamen klein. Das ist so üblich und alles andere ist Pfusch. Ansonsten wirst du immer irgendwie tricksen müssen. Das macht auf Dauer keinen Spaß.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Sheo77
User
Beiträge: 2
Registriert: Donnerstag 3. April 2008, 12:26

Hallo Brucker,

Gerold hat schon den richtigen Hinweis gegeben. Es ist in Postgres durchaus möglich Namen groß und klein gemischt mit etlichen Sonderzeichen zu erstellen. Nur müssen sie dann im SQL-Befehl immer in "" gesetzt werden. Postgres unterscheidet. Daher auch meine Empfehlung alle Namen klein zu schreiben!!! Wo und mit welcher Schnittstelle ich Daten abrufe spielt daher logischerweise keine Rolle und man wird immer die gleichen Probleme haben.

Schaue dir die sehr gute Hilfe von Postgres an (Kapitel 4.1.1: Namen und Schlüsselwörter):
http://www.postgresql.org/files/documen ... DENTIFIERS

Wenn du schon vorhande Tabellen hast, die der Konvention der Kleinschreibung nicht entsprechen, dann solltest du Views dieser Tabellen bauen, in der alle Namen dann klein sind und später nur diese Views abfragen!

Viel Erfolg!
Antworten