sql >> Database teknologi >  >> RDS >> Mysql

hvordan man udfylder mysql kolonneværdi baseret på en formel?

Her er et eksempel på en trigger, der vil virke. Bemærk, at du skal bruge både opdaterings- og indsæt-triggere på grund af dine "ad hoc-opdaterings"-krav.

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 ;

Men ville en udsigt ikke være enklere og bedre?

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

så skal du bare vælge fra visningen i stedet for tabellen



  1. Sådan sammenkædes alle kolonner i et udvalg med SQL Server

  2. Overførsel af datatabel som parameter til lagrede procedurer

  3. Undgå SQL-deadlocks med forespørgselsjustering:Råd fra Brent Ozar

  4. Logger du ALLE forespørgsler på en SQL Server 2008 Express-database?