sql >> Database >  >> RDS >> PostgreSQL

Waarom houdt PostgreSQL niet van HOOFDLETTERS tabelnamen?

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".



  1. PostgreSQL:kenmerk verwijderen uit JSON-kolom

  2. Tabelnaam doorgeven als parameter in psycopg2

  3. DevOps:DBA of Developer – De juiste balans vinden

  4. SQL Server Collection Inventory Script -2