PDA

View Full Version : [mySQL] Chiarimenti sull'uso dei Trigger


shinji_85
02-01-2007, 14:48
Ciao...
Come da titolo, ho qualche grosso dubbio, per quanto riguarda l'uso dei Trigger...

Nell'implementazione di un DataBase che dovrebbe modellare una Trattoria...
Queste 2 funzioni, possono essere realizzate con dei Trigger?!?

1. Allerta superamento minimo dispensa cibi di ampio utilizzo
2. Allerta sulla data di scadenza

Come?!? :D

Altrimenti, quale risulterebbe un uso "corretto" dei Trigger?!?
Vi viene in mente qualche esempio?!?


La seconda funzione come Trigger, in effetti (ora) non ce la vedo nemmeno io... :boh:

gokan
02-01-2007, 15:30
I trigger sono degli eventi che si attivano in risposta a qualcosa!!
Nel tuo caso sai che ti devono allertare nel caso accadano 2 situazioni ben diverse. Ciò potrebbe accadere dopo un inserimento (supponi di inserire nella lista cibi un prodotto scaduto), dopo un UPDATE o un DELETE..

shinji_85
02-01-2007, 15:52
I trigger sono degli eventi che si attivano in risposta a qualcosa!
Nel tuo caso sai che ti devono allertare nel caso accadano 2 situazioni ben diverse. Ciò potrebbe accadere dopo un inserimento (supponi di inserire nella lista cibi un prodotto scaduto), dopo un UPDATE o un DELETE...

Ok... Fin qui ci sono...
Ma come realizzare tutto ciò in mySQL ed avendo a che fare con pagine in PHP?!?

Ad esempio...

CREATE TRIGGER alert_min AFTER UPDATE ON alimento
FOR EACH ROW
BEGIN
IF NEW.QtaDisponibile < QtaMinima THEN
// COME LA "LANCIO", L'ALLERTA?!?
END IF;
END;

RaouL_BennetH
02-01-2007, 16:52
Per "l'allerta" non so risponderti dato che i triggers li sto studiando da poco, ma a livello logico, il controllo non dovresti farlo prima (before) di upgradare o inserire nuovi records ? (chiedo)

Thx.

RaouL.

shinji_85
02-01-2007, 17:22
Per "l'allerta" non so risponderti dato che i triggers li sto studiando da poco, ma a livello logico, il controllo non dovresti farlo prima (before) di upgradare o inserire nuovi records ? (chiedo)

Thx.

RaouL.

Nell'esempio postato sopra...
L'UPDATE potrebbe portare la quantità disponibile di un certo alimento sotto una determinata soglia...

Non so...
In questo caso pensavo di effettuare PRIMA l'UPDATE...
POI, controllare se la quantità è inferiore ad un determinato livello...
ALLORA, lanciare un'allerta per avvisare il gestore che bisogna ricomprare quell'alimento perché è quasi terminato in dispensa...

Come avevi in mente di fare, con il BEFORE?!?


[EDIT] Per la seconda funzione, invece (controllo delle date di scadenza)...
Io lì un Trigger non riesco a immaginarlo... Perché... Fino a controllare l'Inserimento di un prodotto già scaduto ci posso arrivare...
Ma come si fa, in pratica, a riattivare il trigger ogni giorno per controllare se, nel frattempo, non è scaduto qualcosa?!?
Non credo sia possibile no... La vedo più come una procedura da lanciare ogni volta che si fa un nuovo accesso al DB... :boh:

shinji_85
06-01-2007, 14:37
:mc: :boh: :help: