Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> trigger w mysql a usuwanie plikow z dysku
kravczoo
post 13.12.2007, 18:30:10
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
Go to the top of the page
+Quote Post
Indeo
post 14.12.2007, 07:47:56
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.


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 15:33