sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo completar el valor de la columna mysql en función de una fórmula?

Aquí hay un ejemplo de un activador que funcionará. Tenga en cuenta que necesitará activadores tanto de actualización como de inserción debido a sus requisitos de "actualización 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 ;

Pero, ¿no sería una vista más simple y mejor?

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

luego simplemente seleccione desde la vista en lugar de la tabla