![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
witam!
chcialbym dowiedziec sie, czy istnieje mozliwosc napisania triggera, ktory sprawdzalby ilosc wpisow z konkretnym kluczem w tabeli, a gdy jest ich wiecej, niz X, to usuwal zarowno najstarsze wpisy, jak i pliki, ktore sa z tymi wpisami powiazane? przypuscmy, ze mam tabele A i tam mam pola: klucz, tytul, plik plik - tutaj znajduje sie nazwa pliku, ktory ma zostac wyswietlony na stronie, gdy klucz sie zgadza z tym wyslanym przez skrypt php... i chodzi o to, zeby zliczyc rekordy o wartosci klucza przypuscmy 1, po czym usunac najstarsze, gdy jest ich wiecej niz X, a zarazem usunac z dysku pliki, ktore sa podane w polu 'plik'... jezeli napisalem cos niejasno, to prosze o pytania. z gory dziekuje za odpowiedzi. jest to dla mnie bardzo wazne. Ten post edytował kravczoo 13.12.2007, 18:31:11 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 295 Pomógł: 7 Dołączył: 26.03.2004 Skąd: Opole Ostrzeżenie: (0%) ![]() ![]() |
1)
Jesli mówisz o triggerze co miałoby go wyzwalać? Trigger jest wyzwalany w momencie zajścia okreslonego zdarzenia modyfikacji bazy: w "zdarzeniach" polegających na wpisywaniu, usuwaniu lub update tabeli, tak samo jak javascript obsługuje zdarzenia, omouseover,onclick itd. 2) Skąd baza ma wiedzieć, które pliki o danej wartości klucza są najstarsze skoro mają tak samą wartość klucza? Chyba przydałoby sie jakies dodatkowe pole, chociazby daty albo jakis autonumer. 3) Plików z dysku to Ci trigger nie będzie usuwał - trigger moze Ci najwyżej kasować pliki przechowywane binarnie w bazie danych ale mysql nie ma żadnego dostępu do plików, których nazwy są zapisane w jakiejś tabeli. Jesli musisz cos kasować z dysku - to napewno przez php. 4) Natomiast usuwanie danych przez powiązanie zapewniają klucze obce - foreign keys, które usuwają powiązane rekordy potomne we wszystkich tabelach odpowiednio powiązanych takim kluczem z tabelą z której usuwasz dane. na zasadzie - usuwam ojca - baza usuwa jego dzieci. 5) trigger to zwykłe zapytanie sql tyle, że wywoływane automatycznie w pewnych okolicznościach. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 23.06.2025 - 04:25 |