Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. corvo80
    3. Post
    C

    corvo80

    @corvo80

    • Profilo
    • Chi segue 0
    • Da chi è seguito 0
    • Discussioni 1
    • Post 3
    • Migliore 0
    • Gruppi 0
    Iscrizione Ultimo Accesso
    0
    Reputazione
    3
    Post
    0
    Visite al profilo
    0
    Da chi è seguito
    0
    Chi segue
    User Newbie

    Post creati da corvo80

    • RE: [Trigger MySQL] Come fare?

      Chiedo scusa, ho sbagliato nella dichiarazione di VOLUME: non è uscita ma numero.

      postato in Coding
      C
      corvo80
    • RE: [Trigger MySQL] Come fare?

      Ok, ho risolto. Se vi interessa questa è la forma corretta:

      CREATE TRIGGER aggiorna_uscite
      AFTER INSERT ON volume
      FOR EACH ROW
      BEGIN
          declare uscite integer;
          select ultima_uscita into uscite from fumetto where codice = NEW.fumetto;
          IF (NEW.numero > uscite)
          THEN
              UPDATE fumetto
              SET ultima_uscita = NEW.numero
              WHERE NEW.fumetto = codice;
          END IF;
      END;
      
      postato in Coding
      C
      corvo80
    • [Trigger MySQL] Come fare?

      Salve a tutti, ho un problema. Sto finendo di implementare il mio database (che gestisce una fumetteria) e devo costruire un trigger che, ogni volta che esce un nuovo fumetto (ed esso viene aggiunto al database), confronta il numero di uscita con il numero dell'ultima uscita e, se più alto, aggiorna il numero dell'ultima uscita.

      In parole povere abbiamo le seguenti tabelle:

      VOLUME(codice_prodotto,fumetto,uscita)
      Rappresenta la tabella dei singoli fumetti.
      codice_prodotto <- chiave primaria
      fumetto <- chiave esterna di FUMETTO (codice)

      FUMETTO(codice,nome,ultima_uscita)
      Rappresenta la tabella delle singole serie a fumetto.
      codice <- chiave primaria
      ultima_uscita <- attributo derivato che devo tenere aggiornato col mio trigger

      Il trigger che devo implementare deve agire ogni volta che si aggiunge un elemento alla tabella VOLUME. Ecco quello che avevo scritto io all'inizio:

      CREATE TRIGGER aggiorna_ultima_uscita
      AFTER INSERT ON volume
      FOR EACH ROW
      BEGIN
          IF (NEW.numero > ultima_uscita)
          THEN
              UPDATE fumetto
              SET ultima_uscita = NEW.numero
              WHERE NEW.fumetto = codice;
          END IF;
      END;
      ```Il trigger viene compilato senza problemi... il punto è che, a quanto pare, non riesce a riconoscere ultima_uscita a livello del confronto [ *IF (NEW.numero > ultima_uscita)* ], infatti se provo ad aggiungere un nuovo elemento alla tabella VOLUME mi dà errore.
      
      Qual'è la giusta sintassi per ottenere ciò che voglio?
      postato in Coding
      C
      corvo80