Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03225.jsonl.gz/1248

Es sind immer die kleinen Dinge, die einen zum Verzweifeln bringen beim Programmieren. So auch in diesem Fall mit der Postgres-Datenbank. Und zwar geht es um Gross- und Kleinschreibung. Hier tickt Postgres einfach ein wenig anders als die anderen. Also aufgepasst.
Folgendes Beispiel: Wir haben eine Tabelle mit dem Namen Contact und den Spalten strName und ContactID. Ein Update-Statement würde dann beispielsweise so aussehen.
SET Name = 'Muster'
WHERE Contact_ID = 5
Die Resultate: MSSQL: ok
MySQL: ok
Oracle: bääähhhh
Postgres: bäähhh
Der Grund dafür: Tabellennamen und Spaltennamen sind bei PostgreSQL und Oracle verstehen keine Unterschiede in Gross- und Kleinschreibung, bei MySQL ist dies eine Einstellungssache und bei MSSQL ist's egal. MSSQL und je nach Einstellung auch MySQL würden also auch bei folgender Variante nicht streiken:
SET strname = 'Muster'
WHERE contactid = 5
PostgreSQL versteht eigentlich nur Kleingeschriebenes, Oracle hat sich gemäss dem SQL-Standard für versal entschieden. Heiliges Durcheinander. Aber weiter kommt mit dieser Erkenntnis auch nicht. Erfolgreich wird man Postgres nur auf zwei Arten:
- Im Datenbank-Design wird alles klein geschrieben.
- In den Abfragen werden die Spezialfälle angeführt
Variante 1 dient nicht gerade der Lesbarkeit und Variante 2 bedeutet mehr Schreibarbeit. Eine Funktionierende Abfrage würde bei PostgreSQL dann wie Folgt lauten:
SET "strName" = 'Muster'
WHERE "ContactID" = 5
Einfache Anführungszeichen gehen übrigens auch nicht…