Autor | Zpráva | ||
---|---|---|---|
Charlie Profil |
#1 · Zasláno: 6. 9. 2006, 20:10:46
Zdravím,
potřeboval bych poradit s SQL dotazem. Mám tabulku backups a v ní zálohy stránek, přičemž jeden název zálohy se může opakovat i několikrát (stránka je zazálohovaná vícekrát). Maxímální počat identických záloh bych chtěl mít ale konečný, dejme tomu 10. Chtěl bych tedy po každém přidání aplikovat dotaz, který by zachoval 10 nejnovějších záznamů a zbylé smazal. Veškeré mé pokusy byly zatím neúspěšné, budu rád za každý nápad. |
||
Kajman_ Profil * |
No, ladné řešení mě nenapdá... možno by to mohlo fungovat takle nějak
delete from b11 using backups b1, backups b2, backups b3, backups b4, backups b5, backups b6, backups b7, backups b8, backups b9, backups b10, backups b11 where b1.nazev_cl=b2.nazev_cl and b1.nazev_cl=b3.nazev_cl and b1.nazev_cl=b4.nazev_cl and b1.nazev_cl=b5.nazev_cl and b1.nazev_cl=b6.nazev_cl and b1.nazev_cl=b7.nazev_cl and b1.nazev_cl=b8.nazev_cl and b1.nazev_cl=b9.nazev_cl and b1.nazev_cl=b10.nazev_cl and b1.nazev_cl=b11.nazev_cl and b1.id>b2.id and b2.id>b3.id and b3.id>b4.id and b4.id>b5.id and b5.id>b6.id and b6.id>b7.id and b7.id>b8.id and b8.id>b8.id and b9.id>b10.id and b10.id>b11.id ale to bude asi nesmyslně moc zatěžovat db a už při menších objemech to možná ani nepůjde a narazí na limit počtu řádků při joinování :-) Takže spíš bych zkusil popřemýšlet o jiném mazání... třeba, že se nechá poslední vždy a jinak se smažou rok staré záznamy. Nebo holt zavolat delete pro každý článek zvlášť a použít limit 10, 10000000. |
||
Charlie Profil |
#3 · Zasláno: 7. 9. 2006, 00:47:03
Kajman_:
To je opravdu dost krkolomné :) Ale díky moc, potvrdil jsi mi, že nemá cenu řešit neřešitelné zadání. |
||
Kajman_ Profil * |
#4 · Zasláno: 7. 9. 2006, 08:33:41
Řešitelné to je, jen mi přijde, že je efektivnější to promazat pro každou skupinu zvlášť než jedním divním dotazem.
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0