gpt4 book ai didi

mysql - 插入新记录后如何创建更新触发器?

转载 作者:行者123 更新时间:2023-11-29 16:07:50 25 4
gpt4 key购买 nike

我在mysql中创建了表。表名称是sales,其中包含以下列saleID int NOT NULL 主键,
产品ID int NOT NULL,
单位价格小数(6,2) NOT NULL,
数量 int NOT NULL,
总小数(6,2)
现在我想要在插入新记录后更新触发器,以查找本次销售的总价。

我正在尝试编写更新触发器

DELIMITER $$
CREATE TRIGGER before_sales_insert
before INSERT ON sales
FOR EACH ROW
BEGIN

END#
$$
DELIMITER

我是初学者,请帮忙。谢谢

最佳答案

给定

select productid ,standardcost from awproduct where productid = 707;
+-----------+--------------+
| productid | standardcost |
+-----------+--------------+
| 707 | 3.00 |
+-----------+--------------+

并假设您在调用触发器之前尚未获取单价

drop table if exists t;
drop trigger if exists t;
create table t
(id int, productid int, unitprice int, quantity int, totalprice int);

delimiter $$
create trigger t
before insert on t
for each row begin
set new.unitprice = (select standardcost from awproduct where productid = new.productid);
set new.totalprice = new.quantity * new.unitprice;

end $$
delimiter ;

insert into t (id,productid,quantity) values
(1,707,10);

select * from t;

+------+-----------+-----------+----------+------------+
| id | productid | unitprice | quantity | totalprice |
+------+-----------+-----------+----------+------------+
| 1 | 707 | 3 | 10 | 30 |
+------+-----------+-----------+----------+------------+
1 row in set (0.00 sec)

我无法改进手册中的文档,所以我不会尝试。顺便说一句,如果您想要一个更接近您的要求的解决方案,最好在问题中包含示例数据作为文本。

关于mysql - 插入新记录后如何创建更新触发器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55558372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com