PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Dlaczego PostgreSQL nie lubi nazw tabel WIELKIMI LITERAMI?

umieść nazwę tabeli w cudzysłowie, jeśli chcesz, aby postgres zachował wielkość liter w nazwach relacji.

Cytowanie identyfikatora sprawia również, że rozróżniana jest wielkość liter, podczas gdy niecytowane nazwy są zawsze składane na małe litery . Na przykład identyfikatory FOO, foo i „foo” są traktowane przez PostgreSQL jako takie same, ale „Foo” i „FOO” różnią się od tych trzech i od siebie nawzajem. (Zwijanie nazw bez cudzysłowów na małe litery w PostgreSQL jest niezgodne ze standardem SQL, który mówi, że nazwy bez cudzysłowów powinny być składane do wielkich. Zatem foo powinno być równoważne „FOO”, a nie „foo” zgodnie ze standardem. Jeśli chcesz pisać przenośne aplikacje, którym polecano zawsze cytować konkretną nazwę lub nigdy jej nie cytować .)

z dokumentów (podkreślenie moje)

przykład z cytatem:

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)

przykład bez cytowania:

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)

Więc jeśli utworzyłeś tabelę z cudzysłowami, nie powinieneś pomijać cudzysłowów przy jej zapytaniu. Ale jeśli pominiesz cudzysłowy tworzące obiekt, nazwa została zmieniona na małe i tak będzie z wielką nazwą w zapytaniu - w ten sposób "nie zauważysz" tego.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Szczegółowe informacje na temat dostawców chmury:PostgreSQL na AWS Aurora

  2. Trzeba przekonwertować scalanie Oracle na zapytanie do PostgreSQL

  3. Postgres:wyraźny, ale tylko dla jednej kolumny

  4. Jak Cosd() działa w PostgreSQL

  5. Właściciel bazy postgresql nie może uzyskać dostępu do bazy danych - Nie znaleziono relacji.