Invocare Trigger all'interno di un evento

di il
5 risposte

Invocare Trigger all'interno di un evento

Buona sera a tutti
sto utilizzando MySQL 5.7 e mi trovo a dover far fronte ad una richiesta .
nello specifico non devo far altro che invocare 2 trigger che già utilizzo in altre condizioni .

esiste un modo per poter invocare un trigger all'interno di un event ?
questo evento deve essere schedulato ad ogni inizio mese ma i trigger che io voglio invocare devono essere invocati dopo alcuni insert in delle tabelle .

non so se sono stato chiaro nella richiesta .

5 Risposte

  • Re: Invocare Trigger all'interno di un evento

    Sposta il codice dei trigger in 2 funzioni che poi richiami dal trigger e dall'event.
  • Re: Invocare Trigger all'interno di un evento

    Wolfen ha scritto:


    Sposta il codice dei trigger in 2 funzioni che poi richiami dal trigger e dall'event.
    innanzitutto grazie per la risposta .
    ci provo e ti faccio sapere .
  • Re: Invocare Trigger all'interno di un evento

    Wolfen ha scritto:


    Sposta il codice dei trigger in 2 funzioni che poi richiami dal trigger e dall'event.
    ho provato a fare come mi hai consigliato e il problema è che non mi lascia inserire il "for each row"
  • Re: Invocare Trigger all'interno di un evento

    Provo ad uscire dall'astratto e entrare più nel concreto (magari qualcuno ha un approccio migliore di quello che ho pensato io per ovviare a questo problema)
    immaginiamo di avere una tabella utente , una tabella utente_alfa e una tabella utente_beta con utente (padre) ,utente_alfa (figlio) e utente_beta (figlio di alfa) .

    per diventare utente_alfa bisogna effettuare un pagamento che è mensile .

    in pratica un utente diventa utente_beta qualora sia utente_alfa per più di 5 mesi consecutivi .

    io ho pensato a questo approccio :

    trigger1 (si avvia dopo un inserimento nella tabella pagamenti ): si occupa si inserire nella tabella degli utenti alfa l'id dell'utente con la data corrispondente

    trigger2 (si avvia dopo un inserimento nella tabella utente_alfa ) : si occupa si inserire nella tabella degli utenti beta l'id dell'utente

    l'evento nello scheduler si avvia ogni 30 giorni e le operazioni che deve eseguire sono sostanzialmente lo svuotamento delle 2 tabelle (utente_alfa e utente_beta ) e l'invocazione dei due trigger che dovrebbero andare a riempire di nuovo la tabella scremando gli utenti che non sono più alfa e automaticamente escludendo quelli che non sono beta .

    mi rendo conto che come operazione è,oltre che macchinosa anche,abbastanza dispendiosa in termini di tempo ma è una cosa che a mio parere può funzionare abbastanza bene .



    se avete altre idee sono aperto anche ad altri punti di vista .
  • Re: Invocare Trigger all'interno di un evento

    Forse questo link può essere utile per simulare "for each row"
    https://stackoverflow.com/questions/5817395/how-can-i-loop-through-all-rows-of-a-table-mysql

    Per il resto io, personalmente, non avendo una visione completa non saprei cosa dire.
    W.
Devi accedere o registrarti per scrivere nel forum
5 risposte