Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Problema Trigger

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    42

    Problema Trigger

    Ciao ragazzi, ho un problema con il seguente trigger......

    CREATE TRIGGER incr_num_rel_trg
    BEFORE UPDATE ON document
    FOR EACH ROW
    BEGIN
    DECLARE numrel DECIMAL(4,2);
    IF (NEW.stato='RELEASED')
    THEN
    IF NOT EXISTS (SELECT * FROM document WHERE name=NEW.name AND tipo=NEW.tipo)
    THEN IF (NEW.inc='mag') THEN SET NEW.vers_rel=01.00;END IF;
    IF (NEW.inc='min') THEN SET NEW.vers_rel=00.01;END IF;
    ELSE
    SELECT MAX(vers_rel) INTO numrel FROM document WHERE name=NEW.name
    AND tipo=NEW.tipo;
    IF(NEW.inc='mag') THEN SET numrel=numrel+1;SET NEW.vers_rel=numrel;END IF;
    IF(NEW.inc='min') THEN SET numrel=numrel+0.01;SET NEW.vers_rel=numrel;END IF;
    END IF;
    END IF;
    END;

    Allora la prima parte ok ma dopo l'ELSE cè qualcosa che non va perchè non incrementa la versione cioè in vers_rel se era 1.00 invece di andare a 2.00 o a 1.01 va a NULL!!!
    PERCHE'?????

  2. #2
    Prova a inizializzare numrel

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    42
    ...ci ho già provato... dopo DECLARE numrel DECIMAL(4,2); ho provato a mettere numrel=0;
    ma non andava lo stesso.... è strano perchè non è la prima volta che faccio un trigger simile... deve essere una svista di sicuro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    42
    ....nessuno riesce ad aiutarmi...

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    42
    Incredibile ho droppato il trigger e l'ho riscritto e adesso funzione...booo...mi sembrava strano che non andava.....va beh....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.