You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建MySQL表并让totalprice列自动计算piece与price的乘积

实现MySQL表totalprice列自动计算的两种方法

方法1:使用生成列(Generated Column)

这是MySQL 5.7及以上版本的最优方案,直接在表结构中定义计算规则,无需额外逻辑维护。

创建表的SQL语句:

CREATE TABLE your_table_name (
    id INT,
    piece INT,
    price DECIMAL(10,2),
    totalprice DECIMAL(10,2) GENERATED ALWAYS AS (piece * price) STORED
);
  • GENERATED ALWAYS AS (piece * price) 明确totalprice的计算规则为piece与price的乘积
  • STORED 表示该值会存储到磁盘,若选择VIRTUAL则仅在查询时实时计算,可根据业务场景选择

插入数据测试:

INSERT INTO your_table_name (id, piece, price) VALUES (101, 2, 10);

查询表数据即可看到totalprice已自动计算为20,与期望结果一致。

方法2:使用触发器(Trigger)

若你的MySQL版本低于5.7,不支持生成列,可以通过触发器实现自动计算。

先创建基础表:

CREATE TABLE your_table_name (
    id INT,
    piece INT,
    price DECIMAL(10,2),
    totalprice DECIMAL(10,2)
);

创建BEFORE INSERT触发器,在插入数据前自动赋值totalprice:

DELIMITER //
CREATE TRIGGER calculate_totalprice_before_insert
BEFORE INSERT ON your_table_name
FOR EACH ROW
BEGIN
    SET NEW.totalprice = NEW.piece * NEW.price;
END //
DELIMITER ;
  • 触发器会在每次插入数据前触发,将新插入的piece和price相乘后赋值给totalprice

插入测试数据:

INSERT INTO your_table_name (id, piece, price) VALUES (101, 2, 10);

查询后即可看到totalprice已自动填充为20。

内容的提问来源于stack exchange,提问作者Sarowar Jahan Sayid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 03:55:22