...a potom to spustis na particionovanej tabulke a updatne to viac ako jeden riadok.Je dobre vzdy pouzit tuple (ctid, tableoid): ...where (ctid, tableoid) = (select ctid, tableoid from tt limit);Aj Pavel to mal na svojej wiki bez tableoid. Niekde doplnil, inde zostalo samotne ctid.
Este semanticka poznamka k `ctid in (select ... limit 1)`: ak sa od subselectu ocakava skalar, je lepsie pouzit operator =, pretoze pri nechcenej zmene subquery (odstranenie/navysenie LIMIT - co sa lahko stane, ak je subselect schovany za volanim funkcie), to v runtime hodi vynimku.
.pl.Dátum: streda 15. decembra 2021, čas: 10:30:41 UTC+1, odosielateľ: Michal Páleníkahojte
ak chcete urobiť update iba jedného riadku typu
update tt set pocet=200 where ab='a' limit 1;
a nemáte primary key, môžete použiť
update tt set pocet=200 where
ctid in (select ctid from tt where ab='a' limit 1);
(samozrejme nemať primárny kľúč nie je ideálne, lebo teraz updatujem
jeden náhodný riadok)
--
Michal Páleník
www.oma.sk
--
Tuto zprávu jste obdrželi, protože jste přihlášeni k odběru skupiny „PostgreSQL-cz“ ve Skupinách Google.
Chcete-li zrušit odběr skupiny a přestat dostávat e‑maily ze skupiny, zašlete e-mail na adresu postgresql-c...@googlegroups.com.
Chcete-li tuto diskusi zobrazit na webu, navštivte https://groups.google.com/d/msgid/postgresql-cz/bb2b335f-6785-41d6-9d16-869d1250691en%40googlegroups.com.
st 15. 12. 2021 v 14:51 odesílatel Peter <pgs...@gmail.com> napsal:...a potom to spustis na particionovanej tabulke a updatne to viac ako jeden riadok.Je dobre vzdy pouzit tuple (ctid, tableoid): ...where (ctid, tableoid) = (select ctid, tableoid from tt limit);Aj Pavel to mal na svojej wiki bez tableoid. Niekde doplnil, inde zostalo samotne ctid.