Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Uslovno brisanje iz tabele

[es] :: Access :: Uslovno brisanje iz tabele

[ Pregleda: 3194 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

MagicDivx
Novi Sad, Srbija bre

Član broj: 39772
Poruke: 18
*.ptt.yu.



Profil

icon Uslovno brisanje iz tabele01.03.2005. u 14:39 - pre 232 meseci
Kako mogu da izbrisem iz tabele proizvoljan broj record-a tako da mi u tabeli ostane x record-a, a da je x definisan u config fajlu???

Konkretan primer je: potrebno mi je da u tabeli imam maksimalno 25 zapisa. Znaci dok se ne popuni broj od 25 nema brisanja, a nakon prelaska zadatog kriterijuma se brisu najstariji (po datumu) podatci tako da u tabeli nikad nema vise ali ni manje od 25.
Life's a bitch, then you marry one, then you die...

 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.drenik.net.



+3 Profil

icon Re: Uslovno brisanje iz tabele01.03.2005. u 21:59 - pre 232 meseci
Moguce je ali je potrebno da se izvrsi vise SQL naredbi. Najzgodnije resenje bi bilo da se prilikom ubacivanja podataka u bazu startuje neki triger koji bi proveravao broj postojecih redova i vrsio dodatna brisanja.
Owl
 
Odgovor na temu

MagicDivx
Novi Sad, Srbija bre

Član broj: 39772
Poruke: 18
*.ptt.yu.



Profil

icon Re: Uslovno brisanje iz tabele01.03.2005. u 23:29 - pre 232 meseci
Hvala na ideji.

Da li bi mogao da napises neki primer ili bar nesto sto bi malo detaljnije objasnilo postupak?
Life's a bitch, then you marry one, then you die...

 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.blueisp.co.yu.



+3 Profil

icon Re: Uslovno brisanje iz tabele02.03.2005. u 01:22 - pre 232 meseci
Prebrojis redove u tabeli:
SELECT COUNT(*) FORM tabela
Uporedis sa zadatim brojem, ako je broj redova manji ubacis novi red a ako je broj redova veci treba da izbrises redove koji su visak (ovo moze da bude malo zeznutioji deo, posto treba da utvrdis datum na osnovu koga treba da vrsis brisanje). Bitno je da se sve SQL naredbe izvrse u istoj transakciji (sto takodje moze biti problem posto neki RDBMS-ovi ne dozvoljavaju da transakcija u sebi sadrzi SELECT naredbe).
Owl
 
Odgovor na temu

u_m
Urukalo Milan
PH

Član broj: 18631
Poruke: 889
*.wireless.org.yu.

ICQ: 32554731
Sajt: https://milan.urukalo.com


Profil

icon Re: Uslovno brisanje iz tabele02.03.2005. u 11:22 - pre 232 meseci
brise sve unose starije od 1h:
Citat:
DELETE FROM tabela where UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(LastUpdated) > 3600


pa kombinuj malo
#include <music.h>
#include <beer.h>
#include <girls.h>
main(){ run(partytime);}
---------
Moj licni sajt
Moj wap sajt--offline
 
Odgovor na temu

MagicDivx
Novi Sad, Srbija bre

Član broj: 39772
Poruke: 18
*.ptt.yu.



Profil

icon Re: Uslovno brisanje iz tabele02.03.2005. u 22:08 - pre 232 meseci
Nisam neki expert pa ne znam da li access podrzava unix vreme (znam da MySQL podrzava i to sam dosad kombinovao) pa cu malo da se igram sa tim ali mislim da me nisi razumeo:

Meni je potrebno da u tabeli ostaje ni manje ni vise od x (a x je jednako 25) record-a u tabeli a sto se tice vremena brise se onaj zadnji unet i samim tim ostaje poslednjih x zapisa u tabeli.

Evo konkretno treba mi nacin da proverim koliko u tabeli ima record-a i da to smestim u neku promenjivu (nesto kao Count = SELECT Count(tblNesto.Nesto_ID) AS CountOfNesto FROM tblNesto;) i onda ako je Count manji od x idem dalje a ako je Count >= x ja generisem SQL koji posle pozivam sa DoCmd.RunSQL i brisem nepotrebne zapise ali ne znam kako da dobijem to Count?

Ovo sam dobio kao malu ideju od jedne osobe ali nisam bas razumeo kako da to izvedem "DELETE... WHERE... Not in (SELECT TOP 25...)" pa ako neko zna da ovo iskoristi bilo bi super
Life's a bitch, then you marry one, then you die...

 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.eqao.com.



+79 Profil

icon Re: Uslovno brisanje iz tabele03.03.2005. u 18:48 - pre 232 meseci
"jedna osoba" ti je dala dobro resenje:
Code:

DELETE * 
FROM tbl25Podataka
WHERE (((Datum) Not In (SELECT TOP 25 Datum FROM tbl25Podataka ORDER BY Datum DESC;)));

Kopiraj ovaj kod u neki editor, pa promeni tbl25Podataka u ime tvoje tabele. pretpostavljam da imas polje 'datum'. Ako ne, promeni i to.

Jos ti treba dugme ili neki kod koji ce da aktivira ovu sql komandu.

:-)

 
Odgovor na temu

MagicDivx
Novi Sad, Srbija bre

Član broj: 39772
Poruke: 18
*.ptt.yu.



Profil

icon Re: Uslovno brisanje iz tabele03.03.2005. u 19:40 - pre 232 meseci
Hvala Zidar ovo je fenomenalno.

Evo i jedan mali fajl koji lepo demonstrira kako to funkcionise
Life's a bitch, then you marry one, then you die...

Prikačeni fajlovi
 
Odgovor na temu

[es] :: Access :: Uslovno brisanje iz tabele

[ Pregleda: 3194 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.