Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Trigger postgres

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59

    Trigger postgres

    CREATE TRIGGER assegnacosto
    AFTER INSERT ON persona
    REFERENCING NEW ROW AS nr
    FOR EACH ROW
    WHEN (nr.occasionale IS TRUE)
    UPDATE persona
    SET costooccasionale = 10;

    quando lo mando in esecuzione ricevo un errore su referencing.

    Dov'è l' errore ? grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59
    ok...ho capito che per fare il trigger prima devo creare una funzione....

    CREATE FUNCTION conta() RETURNS trigger AS $conta$
    BEGIN

    IF NEW.occasionale IS TRUE THEN


    NEW.costooccasionale := 10;

    END IF;


    IF NEW.occasionale IS FALSE THEN


    NEW.costooccasionale := 0;
    END IF;


    RETURN NEW;
    END;

    $conta$ LANGUAGE plpgsql;

    CREATE TRIGGER conta BEFORE INSERT OR UPDATE ON persona
    FOR EACH ROW EXECUTE PROCEDURE conta();


    Ora il problema in questione è ceh il trigger viene eseguito ma non funziona poiche ho notato che non entra nei cicli if. I 2 casi is true e is false è perche parliamo di un dato booleano. Quindi quando il valore è true il valore costooccasionale = 10 senno 0.

    grazie

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59



    per capirci ancora meglio...quello che fa il trigger è che quando il valore è TRUE allora l' ultima colonna costooccasionale è = 10 altrimenti è 0

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    59
    vabbe funge...non lo fa proprio subito in real time ma va bene cmq

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.