[英]how to populate mysql column value based on a formula?
我創建了一個 mysql 表,其中包含以下列...
item_price, discount, delivery_charge, grand_total
item_price
、 discount
和delivery_charge
的值都取決於所考慮的項目,這些值將手動填寫到表中。
我想讓 mysql 根據item_price
、 discount
和delivery_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
觸發器:
像這樣的東西(未經我的 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.