Wypełnianie typu rowtype |
Wypełnianie typu rowtype |
7.02.2014, 15:53:47
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 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ę? -------------------- |
|
|
12.02.2014, 09:05:34
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 070 Pomógł: 860 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.
|
|
|
19.02.2014, 14:50:34
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 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.
-------------------- |
|
|
20.02.2014, 14:20:02
Post
#4
|
|
Grupa: Moderatorzy Postów: 6 070 Pomógł: 860 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)
|
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 18:30 |