BEFORE TRIGGER not updating value postgresql





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







1















I am trying to implement a BEFORE trigger, which updates a field to current date if another field is updated. Even though the updated value gets assigned to NEW.zuletzt, whenever I call Select * from hoert, I still see the older zuletzt value. Here is the trigger function:



CREATE OR REPLACE FUNCTION changedAnzhoert() RETURNS TRIGGER AS $$
DECLARE
currDate DATE:=CURRENT_DATE;
BEGIN
IF OLD.anzahl<NEW.anzahl THEN
NEW.zuletzt:=currDate;
raise notice 'Neues Datum: %', NEW.zuletzt;
END IF;

RETURN NEW;
END;
$$ LANGUAGE plpgsql;


And the trigger:



CREATE TRIGGER trhoertChange BEFORE UPDATE ON hoert
FOR EACH ROW EXECUTE PROCEDURE changedAnzhoert();


When I run:



UPDATE hoert SET anzahl=anzahl+1 WHERE id=1;


I see:




NOTICE: Neues Datum: 2019-01-03

UPDATE 1











share|improve this question

























  • Please show us the UPDATE statement you use.

    – a_horse_with_no_name
    Jan 3 at 12:20











  • UPDATE hoert SET anzahl=anzahl+1 WHERE id=1 NOTICE: Neues Datum: 2019-01-03 UPDATE 1

    – Minimax
    Jan 3 at 12:25











  • Maybe you are not committing your UPDATE?

    – a_horse_with_no_name
    Jan 3 at 12:27











  • Hmm weird, I did try it as a Transaction with BEGIN; UPDATE; COMMIT; , still no change in the table (except anzahl=anzahl+1)

    – Minimax
    Jan 3 at 12:30











  • In psql execute d hoert and check whether the trigger is the only one.

    – klin
    Jan 3 at 12:35


















1















I am trying to implement a BEFORE trigger, which updates a field to current date if another field is updated. Even though the updated value gets assigned to NEW.zuletzt, whenever I call Select * from hoert, I still see the older zuletzt value. Here is the trigger function:



CREATE OR REPLACE FUNCTION changedAnzhoert() RETURNS TRIGGER AS $$
DECLARE
currDate DATE:=CURRENT_DATE;
BEGIN
IF OLD.anzahl<NEW.anzahl THEN
NEW.zuletzt:=currDate;
raise notice 'Neues Datum: %', NEW.zuletzt;
END IF;

RETURN NEW;
END;
$$ LANGUAGE plpgsql;


And the trigger:



CREATE TRIGGER trhoertChange BEFORE UPDATE ON hoert
FOR EACH ROW EXECUTE PROCEDURE changedAnzhoert();


When I run:



UPDATE hoert SET anzahl=anzahl+1 WHERE id=1;


I see:




NOTICE: Neues Datum: 2019-01-03

UPDATE 1











share|improve this question

























  • Please show us the UPDATE statement you use.

    – a_horse_with_no_name
    Jan 3 at 12:20











  • UPDATE hoert SET anzahl=anzahl+1 WHERE id=1 NOTICE: Neues Datum: 2019-01-03 UPDATE 1

    – Minimax
    Jan 3 at 12:25











  • Maybe you are not committing your UPDATE?

    – a_horse_with_no_name
    Jan 3 at 12:27











  • Hmm weird, I did try it as a Transaction with BEGIN; UPDATE; COMMIT; , still no change in the table (except anzahl=anzahl+1)

    – Minimax
    Jan 3 at 12:30











  • In psql execute d hoert and check whether the trigger is the only one.

    – klin
    Jan 3 at 12:35














1












1








1








I am trying to implement a BEFORE trigger, which updates a field to current date if another field is updated. Even though the updated value gets assigned to NEW.zuletzt, whenever I call Select * from hoert, I still see the older zuletzt value. Here is the trigger function:



CREATE OR REPLACE FUNCTION changedAnzhoert() RETURNS TRIGGER AS $$
DECLARE
currDate DATE:=CURRENT_DATE;
BEGIN
IF OLD.anzahl<NEW.anzahl THEN
NEW.zuletzt:=currDate;
raise notice 'Neues Datum: %', NEW.zuletzt;
END IF;

RETURN NEW;
END;
$$ LANGUAGE plpgsql;


And the trigger:



CREATE TRIGGER trhoertChange BEFORE UPDATE ON hoert
FOR EACH ROW EXECUTE PROCEDURE changedAnzhoert();


When I run:



UPDATE hoert SET anzahl=anzahl+1 WHERE id=1;


I see:




NOTICE: Neues Datum: 2019-01-03

UPDATE 1











share|improve this question
















I am trying to implement a BEFORE trigger, which updates a field to current date if another field is updated. Even though the updated value gets assigned to NEW.zuletzt, whenever I call Select * from hoert, I still see the older zuletzt value. Here is the trigger function:



CREATE OR REPLACE FUNCTION changedAnzhoert() RETURNS TRIGGER AS $$
DECLARE
currDate DATE:=CURRENT_DATE;
BEGIN
IF OLD.anzahl<NEW.anzahl THEN
NEW.zuletzt:=currDate;
raise notice 'Neues Datum: %', NEW.zuletzt;
END IF;

RETURN NEW;
END;
$$ LANGUAGE plpgsql;


And the trigger:



CREATE TRIGGER trhoertChange BEFORE UPDATE ON hoert
FOR EACH ROW EXECUTE PROCEDURE changedAnzhoert();


When I run:



UPDATE hoert SET anzahl=anzahl+1 WHERE id=1;


I see:




NOTICE: Neues Datum: 2019-01-03

UPDATE 1








sql postgresql plpgsql database-trigger






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 3 at 12:27









a_horse_with_no_name

308k46471573




308k46471573










asked Jan 3 at 12:18









MinimaxMinimax

47314




47314













  • Please show us the UPDATE statement you use.

    – a_horse_with_no_name
    Jan 3 at 12:20











  • UPDATE hoert SET anzahl=anzahl+1 WHERE id=1 NOTICE: Neues Datum: 2019-01-03 UPDATE 1

    – Minimax
    Jan 3 at 12:25











  • Maybe you are not committing your UPDATE?

    – a_horse_with_no_name
    Jan 3 at 12:27











  • Hmm weird, I did try it as a Transaction with BEGIN; UPDATE; COMMIT; , still no change in the table (except anzahl=anzahl+1)

    – Minimax
    Jan 3 at 12:30











  • In psql execute d hoert and check whether the trigger is the only one.

    – klin
    Jan 3 at 12:35



















  • Please show us the UPDATE statement you use.

    – a_horse_with_no_name
    Jan 3 at 12:20











  • UPDATE hoert SET anzahl=anzahl+1 WHERE id=1 NOTICE: Neues Datum: 2019-01-03 UPDATE 1

    – Minimax
    Jan 3 at 12:25











  • Maybe you are not committing your UPDATE?

    – a_horse_with_no_name
    Jan 3 at 12:27











  • Hmm weird, I did try it as a Transaction with BEGIN; UPDATE; COMMIT; , still no change in the table (except anzahl=anzahl+1)

    – Minimax
    Jan 3 at 12:30











  • In psql execute d hoert and check whether the trigger is the only one.

    – klin
    Jan 3 at 12:35

















Please show us the UPDATE statement you use.

– a_horse_with_no_name
Jan 3 at 12:20





Please show us the UPDATE statement you use.

– a_horse_with_no_name
Jan 3 at 12:20













UPDATE hoert SET anzahl=anzahl+1 WHERE id=1 NOTICE: Neues Datum: 2019-01-03 UPDATE 1

– Minimax
Jan 3 at 12:25





UPDATE hoert SET anzahl=anzahl+1 WHERE id=1 NOTICE: Neues Datum: 2019-01-03 UPDATE 1

– Minimax
Jan 3 at 12:25













Maybe you are not committing your UPDATE?

– a_horse_with_no_name
Jan 3 at 12:27





Maybe you are not committing your UPDATE?

– a_horse_with_no_name
Jan 3 at 12:27













Hmm weird, I did try it as a Transaction with BEGIN; UPDATE; COMMIT; , still no change in the table (except anzahl=anzahl+1)

– Minimax
Jan 3 at 12:30





Hmm weird, I did try it as a Transaction with BEGIN; UPDATE; COMMIT; , still no change in the table (except anzahl=anzahl+1)

– Minimax
Jan 3 at 12:30













In psql execute d hoert and check whether the trigger is the only one.

– klin
Jan 3 at 12:35





In psql execute d hoert and check whether the trigger is the only one.

– klin
Jan 3 at 12:35












1 Answer
1






active

oldest

votes


















1














It's likely that you have another trigger. In psql execute



d hoert 


and check whether the trigger is the only one.






share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54022165%2fbefore-trigger-not-updating-value-postgresql%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    It's likely that you have another trigger. In psql execute



    d hoert 


    and check whether the trigger is the only one.






    share|improve this answer




























      1














      It's likely that you have another trigger. In psql execute



      d hoert 


      and check whether the trigger is the only one.






      share|improve this answer


























        1












        1








        1







        It's likely that you have another trigger. In psql execute



        d hoert 


        and check whether the trigger is the only one.






        share|improve this answer













        It's likely that you have another trigger. In psql execute



        d hoert 


        and check whether the trigger is the only one.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 3 at 12:39









        klinklin

        61k65991




        61k65991
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54022165%2fbefore-trigger-not-updating-value-postgresql%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            MongoDB - Not Authorized To Execute Command

            in spring boot 2.1 many test slices are not allowed anymore due to multiple @BootstrapWith

            Npm cannot find a required file even through it is in the searched directory