簡體   English   中英

MySQL 5.7-計算列/觸發函數

[英]mySQL 5.7 - calculated column / trigger function

我需要在mySQL表中做簡單的數學運算。

我有一個表paying_tbl,其中的字段為:正常,罰款,退款,並嘗試添加已提交的未付帳款,這是正常+罰款+退款?

Payment_tbl的代碼:

create table payment_tbl (
payment_id INT (10) PRIMARY KEY AUTO_INCREMENT, 
payment_amount decimal (5,2) not null, 
payment_date DATE not null,
normal decimal (5,2) not null,
penalty decimal (5,2) not null,
refund decimal (5,2) not null,
out decimal (5,2));

INSERT into payment_tbl (
payment_amount, 
payment_date, 
normal, 
penalty,
refund)
values ('5.55', '2015-05-05', '5.55','0', '0');

所以我想把列作為所有三筆付款的總和嗎?

這是生成的列的文檔:

CREATE TABLE payment_tbl(
    payment_id INT (10) PRIMARY KEY AUTO_INCREMENT,
    payment_amount decimal (5,2) not null,
    payment_date DATE not null,
    normal decimal (5,2) not null,
    penalty decimal (5,2) not null,
    refund decimal (5,2) not null,
    `out` decimal (5,2) AS (normal+penalty+refund)
);

我將out列的定義修改為其他3列的總和。 您不需要觸發器。

您可以使用此查詢中的一個來添加COLUMN。 如果您使用PERSISTENT查詢,還可以在此列上添加一個INDEX。

ALTER TABLE payment_tbl
ADD COLUMN `out` DECIMAL(5,2) AS ( normal + penalty + refund)  VIRTUAL;

ALTER TABLE payment_tbl
ADD COLUMN `outp` DECIMAL(5,2) AS ( normal + penalty + refund)  PERSISTENT;

暫無
暫無

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

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