簡體   English   中英

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

[英]how to populate mysql column value based on a formula?

我創建了一個 mysql 表,其中包含以下列...

item_price, discount, delivery_charge, grand_total

item_pricediscountdelivery_charge的值都取決於所考慮的項目,這些值將手動填寫到表中。

我想讓 mysql 根據item_pricediscountdelivery_charge的值填充grand_total列中的值,使用下面的公式......

grand_total = item_price - discount + delivery_charge

在 mysql 中創建表結構時,我能否以某種方式為該列指定一個公式? 我知道這可以使用 php 來完成,但如果可能的話,我更喜歡數據庫自動為我做這件事。

這是一個可以工作的觸發器示例。 請注意,由於您的“臨時更新”要求,您將需要更新和插入觸發器。

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 ;

但是視圖不是更簡單更好嗎?

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

然后只是 select 從視圖而不是表

我認為您必須為此使用BEFORE INSERT觸發器:

http://dev.mysql.com/doc/refman/5.6/en/create-trigger.html

像這樣的東西(未經我的 header 代碼頂部測試):

CREATE TRIGGER blahblah BEFORE INSERT ON your_table
FOR EACH ROW BEGIN
    set new.grand_total = new.item_price - new.discount + new.delivery_charge;
END;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM