|
|
drobna oprava
|
5.1.2007 14:12
Pavel Stěhule
|
smyslem zapisu update set (..) = je skutecne pouziti subselectu, bohuzel 8.2. jeste tohle nepodporuje |
|
|
Re: drobna oprava
|
5.1.2007 17:04
Radim Kolář
|
Podle mne subquery podporuje nebot tato konstrukce projde:
UPDATE rapid r1 set (id) = ((select id from packages where r1.id=packages.id limit 1));
t.j. odkaz z vnoreneho selectu na vnejsi tabulku, coz je podle mne subquery. Pokud nemam pravdu a o suquery se nejedna, napiste jak se tato konstrukce nazyva.
|
|
|
Re: drobna oprava
|
6.1.2007 08:30
Pavel Stěhule
|
Toto je vyraz, subselect se zapisuje mezi jedny zavorky. Rozdil je v tom, ze subselect vraci tabulku, kdezto vyraz skalarni hodnotu, pole nebo vektor. Pro mnohe uzivatele se jedna o drobny rozdil. Rozdil bude v efektivite provadeni. V PostgreSQLu to nechybi, v UPDATE muzu pouzivat FROM a JOIN (coz je nestandardni rozsireni). Problemy nastavaji pri portaci aplikaci z Informixu. V subselectu take nejste limitovan jednim radkem (viz. limit 1).
Tohle tema moc nesleduji. Vsiml jsem si jen vcelku bourlive diskuze ohledne prijeti patche, kde se resilo to, ze vlastne je patch jeste do jiste miry neuplny a zda tuto funkci zavest nebo nikoliv, kdyz jeste nema funkcionalitu, kterou by mohli lide ocekavat. Myslel jsem si, ze patch zustal az pro 8.3, tak jsem si subselect vyzkousel, a nezafungovalo to :-)
vic naleznete v diskuzi:
http://archives.postgresql.org/pgsql-patches/2006-07/msg00347.php
|
|
|
preklep
|
6.1.2007 20:48
dvhx
|
tento typ chyb se velmi navíc špatně hledá |
|
|
|
|
KOMENTARZE
|
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
|
|
Szukanie oprogramowania
|
©Pavel Kysilka - 2003-2024 |
maillinuxsoft.cz | Design:
www.megadesign.cz
|