![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Struktura tej tabeli jest id_faktury|id_firmy|inne_id|...|numer_faktury Wytłumaczcie mi proszę dlaczego postgres dla zapytania select * x(); zamiast podstawić odpowiednie kolumny do ROWTYPE wciska je po kolei według selecta? Czyli zamiast wypełnić na przykład: Kod id_faktury|null|null|...|numer_faktury wstawia zwyczajnie Kod id_faktury|id_transakcji|numer_faktury Czyli w tym wypadku numer_faktury trafia do kolumny integer inne_id. Może to piątek sprawia że już głupoty wypisuję? (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Pewnie dlatego, że pobierasz tylko wybrane kolumny. Musiałbyś pobrać wszystkie kolumny by prawidłowo wypełnić rekord typu "faktury". Wiąże się to zapewne z tym, że Postgres po kolei wypełnia napotkane kolumny. Dlaczego nie opiera się na ich nazwach? Pewnie dlatego, że w przypadku aliasów wypełnienie nie byłoby możliwe. Więc ignoruje nazwy kolumn i wstawia dane po kolei.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Masz rację. Znalazłem w międzyczasie gdzieś informację że postgres indeksy traktuje numerycznie, nie używając nazw kolumn. Moim zdaniem trochę to słabe, przede wszystkim przeczy zasadzie spójności jeżeli w międzyczasie zmieni się struktura tabeli. Wolałbym wywalenie błędu w przypadku niezgodności. A przecież w końcu po to definiuję konkretną tabelę zamiast losowego typu RECORD żeby nie mieć takich kwiatków.
|
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
O spójność się nie martw. Dokładając nowe pole do tabeli jest ono umieszczane na końcu tabeli. W Postgresie nie masz możliwości ustalania na jakiej pozycji zostanie wstawiona nowa kolumna. Mnie to czasem irytuje bo lubię mieć porządek (nawet w kolejności kolumn) (IMG:style_emoticons/default/wink.gif)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 01:30 |