Wpis z mikrobloga

#programowanie #postgresql

Hmm, mam jedne z pierwszych doświadczeń w PGSQL, bo wywodzę się raczej z T-SQL Sybase/MSSQL, które są do siebie podobnawe pod pewnymi względami. I zastanawia mnie jedna rzecz.

Jak tworzę sobie tabelę "Users" a potem zrobię SELECT * FROM Users to się wysra, że nie ma "users". Zadziała dopiero jak napiszę SELECT * FROM "Users". Zadziała także gdy utworzę tabelę "users" i napiszę SELECT * FROM users.

Czy ten silnik bazodanowy jest case sensitive czy co? W dodatku w taki dziwny asymetryczny sposób, że możesz mieć duże litery w nazwie tabeli ale potem nie da się z tego zrobić selecta bez cudzysłowiu? Dlaczego w ten sposób ktoś to wymyślił?

EDIT:
Właśnie wyczytałem że to zależy od tego jak tworzymy tabelę, jak nazwa w "" to będzie case insensitive a jak bez to case sensitive. Trochę to dziwne.
  • 5
@Khaine: taki jego urok. Najlepiej uzywac malych liter do wszystkiego, jest mniej klopotow, albo wszedzie nazwy ladowac w uszy. To drugie pozwala nazywac kolumny nazwami, ktore moga byc uznane za komendy.
@Kaczus2B: Wiesz, jeśli ktoś tworzy ręcznie pisząc zapytania - jak ja mam osobiście w zwyczaju, bo robię przy tym od razu kod źródłowy do deploya nowej bazy danych - to pół biedy, bo mam kontrolę nad tym. Ale jak sobie wyklikuję z poziomu PgAdmin i wpiszę tam nazwę tabeli z dużej litery to się będzie wysrywać potem. W kodzie z palucha przyjąłem założenie, że tabele są z małych liter i tyle.
@Khaine: coz, jak napisalem, taki urok. Ja mam kod do utrzymania, ktory ma dzialac pod mssql-em, postgresem i paradoksem (cale szczescie od ostatniego odchodzimy pomalu) i wiem, ze czasem trzeba pokombinowac, bo bazy zachowuja sie inaczej. Jesli chodzi o pgadmina, to mam nadzieje, ze masz mozliwosc uzywac jeszcze wersji 3.x, wersja 4, to jakas porazka (niestety pod linuksem z nowa wersja tylko ta dziala poprawnie). Jeslichodzi o tego altera, to jakis
@Kaczus2B: Mam pod windowsem. Bawię się PostGresem, bo MSSQL niestety sporo kosztuje w wersji normalnej a wersja Express jest zbyt pocięta. Jeden procesor logiczny i 1 gb RAM... no działać może ale po co skoro jest PostGres? Doliczać ponad 10 baniek klientowi za samą bazę danych to dosyć bolesny dodatek ceny.
@Khaine: spoko, baza ma swoje fanaberie, ale jak na darmowa jest na prawde ok, a nawet więcej. Ma dużo rzeczy zgapionych z Oracle, więc jest trochę inna niż MSSQL-owa. Trzeba się po prostu przyzwyczaić.