sæt tabelnavn i dobbelte anførselstegn, hvis du ønsker, at postgres skal bevare store og små bogstaver for relationsnavne.
At citere en identifikator gør den også forskel på store og små bogstaver, hvorimod navne uden citater altid foldes med små bogstaver . For eksempel betragtes identifikatorerneFOO, foo og "foo" som de samme af PostgreSQL, men "Foo" og "FOO" er forskellige fra disse tre og hinanden. (Foldningen af navne uden anførselstegn til små bogstaver i PostgreSQL er inkompatibel med SQL-standarden, som siger, at navne uden citater skal foldes til store bogstaver. Således skal foo svare til "FOO" ikke "foo" ifølge standarden. Hvis du vil skrive bærbare applikationer, du rådes til at altid citere et bestemt navn eller aldrig citere det .)
fra docs (fremhæv min)
eksempel med citat:
t=# create table "UC_TNAME" (i int);
CREATE TABLE
t=# \dt+ UC
t=# \dt+ "UC_TNAME"
List of relations
Schema | Name | Type | Owner | Size | Description
--------+----------+-------+----------+---------+-------------
public | UC_TNAME | table | postgres | 0 bytes |
(1 row)
eksempel uden at citere:
t=# create table UC_TNAME (i int);
CREATE TABLE
t=# \dt+ UC_TNAME
List of relations
Schema | Name | Type | Owner | Size | Description
--------+----------+-------+----------+---------+-------------
public | uc_tname | table | postgres | 0 bytes |
(1 row)
Så hvis du har oprettet en tabel med anførselstegn, bør du ikke springe over anførselstegn ved at forespørge på den. Men hvis du sprang over anførselstegn ved oprettelse af objekt, blev navnet foldet til små bogstaver, og det vil det også være med store bogstaver i forespørgslen - på denne måde "lægger du ikke mærke til" det.