Pytanie PostgreSQL wymusza małe litery?


Właśnie zacząłem uczyć się PostgreSQL 9.1 na linuxie przez C i libpq.
Na razie sprawdzam połączenie, łączę się, tworzę bazę danych, tworzę tabelę i inne podstawowe rzeczy. Ale zauważyłem, że podczas tworzenia tabeli PQ konwertuje moją nazwę bazy danych na małe litery. Następnie widzę, że nazwy tabel i nazwy pól są również wymuszane na małe litery. Jednak gdy próbuję połączyć się z wielką (oryginalną) nazwą bazy danych, otrzymuję ostrzeżenie, że nie istnieje baza danych zapytań.

Najlepsze będzie to, że wszystkie imiona pozostaną zapisane. Czy można to osiągnąć za pomocą prostej metody / ustawienia?

Na przykład:

M_122_KL0001_2011_001_0100001

zostanie utworzony jako m_122_kl0001_2011_001_0100001, co nie jest dla mnie pożądane.
To samo dzieje się z nazwami tabel i nazwami pól.


21
2018-03-02 18:43


pochodzenie




Odpowiedzi:


Jest to domyślne zachowanie PostgreSQL.

Jeśli chcesz mieć duże lub małe litery, możesz podać identyfikator np .:

createdb "M_122_KL0001_2011_001_0100001"

28
2018-03-02 18:49



Tak! Dziękuję bardzo. Tu byłoby mnóstwo "uciekających struny" :) - Wine Too
Czy byłoby mądrzej zachować zasady "małe litery"? - Wine Too
Moim zdaniem, tak, ułatwia życie wszystko małe. Ale jeśli masz jakiś powód, aby użyć dużego lub mieszanego przypadku, to przynajmniej teraz wiesz, jak jest on obsługiwany. - bernie
Czy ktokolwiek wie o uzasadnieniu tego domyślnego zachowania? - Basic
@Basic: Nie jestem w 100%, ale domyślam się, że sprawia, że ​​identyfikatory są niewrażliwe na wielkość liter bez większego wpływu na wydajność. - Denis de Bernardy