Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment remplir la valeur de la colonne mysql en fonction d'une formule ?

Voici un exemple de déclencheur qui fonctionnera. Notez que vous aurez besoin à la fois de déclencheurs de mise à jour et d'insertion en raison de vos exigences de "mise à jour ad hoc".

delimiter ~

create trigger my_table_update before update on my_table
for each row begin
    set new.grand_total = new.item_price - new.discount + new.delivery_charge;
end~

create trigger my_table_insert before insert on my_table
for each row begin
    set new.grand_total = new.item_price - new.discount + new.delivery_charge;
end~

delimiter ;

Mais une vue ne serait-elle pas plus simple et meilleure ?

create view my_table_view as
select item_price, discount, delivery_charge, 
item_price - discount + delivery_charge as grand_total
from my_table;

puis sélectionnez simplement dans la vue au lieu du tableau