plaats de tabelnaam tussen dubbele aanhalingstekens als u wilt dat postgres hoofdletters behoudt voor relatienamen.
Het citeren van een identifier maakt deze ook hoofdlettergevoelig, terwijl namen zonder aanhalingstekens altijd worden omgevouwen tot kleine letters . De identifiers FOO, foo en "foo" worden bijvoorbeeld door PostgreSQL als hetzelfde beschouwd, maar "Foo" en "FOO" verschillen van deze drie en van elkaar. (Het vouwen van niet-aangehaalde namen naar kleine letters in PostgreSQL is incompatibel met de SQL-standaard, die zegt dat niet-aangehaalde namen naar hoofdletters moeten worden gevouwen. Foo moet dus gelijk zijn aan "FOO" en niet "foo" volgens de standaard. Als u wilt schrijven draagbare toepassingen die u hebt geadviseerd om altijd een bepaalde naam te citeren of deze nooit te citeren .)
uit documenten (nadruk van mij)
voorbeeld met aanhalingstekens:
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)
voorbeeld zonder citeren:
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)
Dus als u een tabel met aanhalingstekens hebt gemaakt, moet u de aanhalingstekens bij het opvragen ervan niet overslaan. Maar als je aanhalingstekens hebt overgeslagen die een object maakten, werd de naam gevouwen tot kleine letters en dat geldt ook voor de naam in hoofdletters in de zoekopdracht - op deze manier "merk je het niet op".