Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie füllt man den MySQL-Spaltenwert basierend auf einer Formel?

Hier ist ein Beispiel für einen Trigger, der funktioniert. Beachten Sie, dass Sie aufgrund Ihrer "Ad-hoc-Update"-Anforderungen sowohl Update- als auch Insert-Trigger benötigen.

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 ;

Aber wäre eine Ansicht nicht einfacher und besser?

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

dann wählen Sie einfach aus der Ansicht statt aus der Tabelle aus