sql >> Databasteknik >  >> RDS >> Mysql

hur fyller man i mysql-kolumnvärdet baserat på en formel?

Här är ett exempel på en trigger som fungerar. Observera att du behöver både uppdatera och infoga utlösare på grund av dina "ad hoc-uppdateringskrav".

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 skulle inte en vy vara enklare och bättre?

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

välj sedan bara från vyn istället för tabellen



  1. mysql-liknande prestandahöjning

  2. Kontrollera utrymmet som används av en tabell i SQL Server

  3. Få namnet på den aktuella funktionen inuti funktionen med plpgsql

  4. Hur definierar man en unik begränsning på en kolumn i MySQL-tabellen i Ruby on Rails 3?