Názor k článku Co nefunguje v MySQL a jak to obejít od Pavel Stěhule - Psal jsem o něčem jiném. Jako hlavní riziko vidím...

  • Článek je starý, nové názory již nelze přidávat.
  • 16. 12. 2009 12:25

    Pavel Stěhule

    Psal jsem o něčem jiném. Jako hlavní riziko vidím programátory, kteří nepochopili smysl proměnných NEW a OLD, a jsou schopní napsat např. UPDATE trigger jako

    BEGIN
    UPDATE tab SET col = current_time
    WHERE id = OLD.id;
    END;

    je to dost zjednodušené pro názornost.

    Už jsem to psal, teď trochu jinými slovy. I když většina databází umožňuje umístit do triggerů DML příkazy – osobně se snažím spíš preferovat procedury před triggery. AFTER triggery beru primárně pouze pro kontroly (a případně jednoduché logování). Není to dáno technologickým omezením – až na MySQL většina db nemá toto omezení, jako spíš snahou nebudovat black box, kdy DML příkazem startujete nějaký monstrózní proces. Monstrózní procesy mám ráději izolované v procedurách než schované v triggerech.