Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    577

    [MYSQL] Is Null in un Trigger

    Buonasera a tutti.

    Ho un problema con un trigger in Mysql.

    Ho:
    una tabella Clienti che tra i vari campi ha anche il campo tot_venduto (decimal 7,2);
    e una tabella Ordini con tra i vari campi il campo imp_ordine (decimal 7,2).

    Ho creato un trigger nella tabella Ordini che nel (Before) mi fa un aggiornamento del tot_venduto della tabella Clienti, scrivendo il seguente codice:

    codice:
    CREATE TRIGGER `incr_tot_ventuto` BEFORE INSERT ON `Ordini` FOR EACH ROW BEGIN
    UPDATE Clienti SET tot_venduto = tot_venduto + NEW.imp_ordine WHERE id_cliente = NEW.id_cliente;
    END;
    Ma non c'è verso che riesco a farla andare. Nel campo tot_venduto della tabella Clienti mi rimane sempre il valore Null.

    Grazie a tutti in anticipo.

    Lucia

  2. #2
    Direi che hai un problema col delimiter. Se usi uno statement multiline lo devi cambiare, esempio:

    codice:
    DELIMITER //
    CREATE TRIGGER `incr_tot_ventuto` BEFORE INSERT ON `Ordini` FOR EACH ROW
    BEGIN
        UPDATE Clienti SET tot_venduto = tot_venduto + NEW.imp_ordine WHERE id_cliente = NEW.id_cliente;
    END //
    DELIMITER ;
    oppure lo scrivi senza BEGIN e END:

    codice:
    CREATE TRIGGER `incr_tot_ventuto` BEFORE INSERT ON `Ordini` FOR EACH ROW 
    UPDATE Clienti SET tot_venduto = tot_venduto + NEW.imp_ordine WHERE id_cliente = NEW.id_cliente;

  3. #3

    Re: [MYSQL] Is Null in un Trigger

    Originariamente inviato da lucisetti
    Ho creato un trigger nella tabella Ordini che nel (Before) mi fa un aggiornamento del tot_venduto della tabella Clienti...
    Per una operazione come quella indicata userei un AFTER trigger. Il BEFORE è più corretto usarlo se devi validare, inizializzare campi e/o applicare regole ed eventualmente sollevare un errore per bloccare l'esecuzione.
    Saluti a tutti
    Riccardo

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 © 2020 vBulletin Solutions, Inc. All rights reserved.