sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvorfor PostgreSQL ikke kan lide tabelnavne med STORE BOGSTAVER?

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.



  1. Hvordan SECOND() virker i MariaDB

  2. Sådan rettes forkert strengværdi i MySQL

  3. Ret Msg 8114 "Fejl ved konvertering af datatype varchar til numerisk" i SQL Server

  4. Sådan konfigureres databasemail i SQL Server