如何根据公式填充mysql列值?

aru*_*air 3 mysql formula calculated-field

我创建了一个包含以下列的mysql表...

item_price, discount, delivery_charge, grand_total
Run Code Online (Sandbox Code Playgroud)

的值item_price,discount以及delivery_charge所有取决于所考虑的项目而变化,并且这些将被手动填充到表中.

我想有mysql填充在价值grand_total基础上的值列item_price,discount以及delivery_charge,用下面的公式...

grand_total = item_price - discount + delivery_charge
Run Code Online (Sandbox Code Playgroud)

在mysql中创建表结构时,我可以以某种方式为此列指定公式吗?我知道这可以使用php完成,但我更喜欢数据库自动为我做这个,如果可能的话.

Boh*_*ian 7

这是一个可行的触发器示例.请注意,由于您的"临时更新"要求,您将需要更新和插入触发器.

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 ;
Run Code Online (Sandbox Code Playgroud)

但是,观点不会更简单,更好吗?

create view my_table_view as
select item_price, discount, delivery_charge, 
item_price - discount + delivery_charge as grand_total
from my_table;
Run Code Online (Sandbox Code Playgroud)

然后只从视图而不是表中选择