MySQL在插入数据时自动更新字段

低的

我正在制作一个Web应用程序,以使客户订购任何东西。为此,我制作了一个具有下表的MySQL数据库:

  • customers
  • orders
  • orders-items
  • products

customers表是所有的人,如信息:

  • 客户ID,用于主键和自动递增(id)
  • 名字(first_name)
  • 姓氏(last_name)
  • 电子邮件地址(email_address)
  • 有关客户的信息(customer_info)

例子:

在此处输入图片说明

orders表格中提供了有关表格的所有特定信息,例如:

  • 订单ID,用于主键和自动递增(id)
  • 表中的id字段customers(customer_id)关联的是订购的哪个客户
  • 订单信息(order_info)
  • 订单需要转到的位置(位置)
  • 客户必须支付的总价(total_price)
  • 创建订单的时间(创建)

例子:

在此处输入图片说明

orders-items表都是其每一个客户订购的商品,这是被链接的order-id从上表。

  • ID,用于主键和自动递增,不用于任何关系(id)
  • 订单ID,用于哪个产品的订单。这与表格中id字段orders(order_id)链接
  • 产品ID,用于订购的产品,该ID与products表中的ID字段链接(product_id)
  • 他们订购的产品数量(数量)

例子:

在此处输入图片说明

products表是有关产品的所有信息:

  • ID,用于主键和自动递增,它与表中product_id字段链接order_items(id)
  • 产品名称(名称)
  • 产品说明(描述)
  • 产品价格(价格)

例子:

在此处输入图片说明

问题:

我有这个查询:

SELECT `orders-items`.`order_id` , SUM(`orders-items`.`quantity`* `products`.`price`) total
FROM  `orders-items` 
INNER JOIN  `Products` ON  `orders-items`.`products_id` =  `products`.`id` 

它向我显示了每个order_id人必须支付的所有总价格的列表

但我怎么做这使的该值total_priceorder_id有薪酬automatticly插入到orders表内total_price,在合适的领域order_id中插入产品到我的时候orders-list表?

或者是它最好还是不跟踪的total_pricescustomers要付钱?

黑纳德

需要考虑的几件事。

拥有一个total_price本身就是多余的。您可以随时通过汇总该订单商品的价格来了解总数。出于性能方面的原因而拥有它可能很有趣,但这是否真的适合您的方案?很少是这样。

有一个price在每个order_item另一只手将是有益的。原因是因为这些产品的价格将来可能会发生变化,并且您不想丢失有关该次特定销售时这些产品的销售量的信息。

无论如何,您都可以total_price像这样更新使用触发器:

DELIMITER $$

CREATE TRIGGER order_items_insert AFTER INSERT ON `orders-items` FOR EACH ROW
BEGIN
    UPDATE orders o INNER JOIN (SELECT i.order_id id, SUM(i.quantity * p.price) total_price FROM `orders-items` i INNER JOIN products p ON p.id = i.products_id AND i.order_id = new.order_id) t ON t.id = o.id SET o.total_price = t.total_price;
END$$

CREATE TRIGGER order_items_update AFTER UPDATE ON `orders-items` FOR EACH ROW
BEGIN
    UPDATE orders o INNER JOIN (SELECT i.order_id id, SUM(i.quantity * p.price) total_price FROM `orders-items` i INNER JOIN products p ON p.id = i.products_id AND i.order_id = new.order_id) t ON t.id = o.id SET o.total_price = t.total_price;
END$$

CREATE TRIGGER order_items_delete AFTER DELETE ON `orders-items` FOR EACH ROW
BEGIN
    UPDATE orders o INNER JOIN (SELECT i.order_id id, SUM(i.quantity * p.price) total_price FROM `orders-items` i INNER JOIN products p ON p.id = i.products_id AND i.order_id = old.order_id) t ON t.id = o.id SET o.total_price = t.total_price;
END$$

DELIMITER ;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL在插入数据时自动更新字段

来自分类Dev

Mongodb 自动更新字段

来自分类Dev

JPA /休眠:如何在实体更新时自动更新字段

来自分类Dev

MySQL插入的更新字段...在重复密钥更新时

来自分类Dev

更新mysql中的任何字段时,时间戳会自动更新

来自分类Dev

MYSQL使用链接的数据更新字段

来自分类Dev

自动更新或插入(如果不存在)到mysql数据库

来自分类Dev

JavaScript更改绑定的输入字段的值时,将自动更新vue.js数据

来自分类Dev

24小时后自动更新MySQL表上的字段值

来自分类Dev

如何根据在Django中更改过的用户自动更新字段?

来自分类Dev

基于两个<select>值自动更新字段

来自分类Dev

如何在Powerpoint的自动更新字段中设置自定义日期格式?

来自分类Dev

插入列时如何自动更新公式。

来自分类Dev

插入数据后,显示集合的模板不会自动更新

来自分类Dev

在ACF中更新字段时插入新行

来自分类Dev

在ACF中更新字段时插入新行

来自分类Dev

自动更新R参考类中的字段(数据成员)

来自分类Dev

如何根据输入字段中输入的数据自动更新

来自分类Dev

MySQL可以自动更新数量字段吗?

来自分类Dev

当我在类中更改Object的字段时,Spring / Hibernate会自动更新数据库

来自分类Dev

自动更新Mysql数据库条目

来自分类Dev

发现重复项时,如何在其他表中插入忽略的MySQL行并更新字段?

来自分类Dev

如何自动更新表单字段

来自分类Dev

UpdateView中的自动更新子弹字段

来自分类Dev

自动更新多对多字段

来自分类Dev

更新或插入时触发mysql-在受影响的行/行中更新字段

来自分类Dev

当行失去焦点时如何在HeidiSQL中禁用自动更新/插入

来自分类Dev

尝试查找和自动更新日期时间字段时,SQLALchemy出现错误

来自分类Dev

保存其他多对多相关模型时,自动更新Django模型中的特定字段

Related 相关文章

  1. 1

    MySQL在插入数据时自动更新字段

  2. 2

    Mongodb 自动更新字段

  3. 3

    JPA /休眠:如何在实体更新时自动更新字段

  4. 4

    MySQL插入的更新字段...在重复密钥更新时

  5. 5

    更新mysql中的任何字段时,时间戳会自动更新

  6. 6

    MYSQL使用链接的数据更新字段

  7. 7

    自动更新或插入(如果不存在)到mysql数据库

  8. 8

    JavaScript更改绑定的输入字段的值时,将自动更新vue.js数据

  9. 9

    24小时后自动更新MySQL表上的字段值

  10. 10

    如何根据在Django中更改过的用户自动更新字段?

  11. 11

    基于两个<select>值自动更新字段

  12. 12

    如何在Powerpoint的自动更新字段中设置自定义日期格式?

  13. 13

    插入列时如何自动更新公式。

  14. 14

    插入数据后,显示集合的模板不会自动更新

  15. 15

    在ACF中更新字段时插入新行

  16. 16

    在ACF中更新字段时插入新行

  17. 17

    自动更新R参考类中的字段(数据成员)

  18. 18

    如何根据输入字段中输入的数据自动更新

  19. 19

    MySQL可以自动更新数量字段吗?

  20. 20

    当我在类中更改Object的字段时,Spring / Hibernate会自动更新数据库

  21. 21

    自动更新Mysql数据库条目

  22. 22

    发现重复项时,如何在其他表中插入忽略的MySQL行并更新字段?

  23. 23

    如何自动更新表单字段

  24. 24

    UpdateView中的自动更新子弹字段

  25. 25

    自动更新多对多字段

  26. 26

    更新或插入时触发mysql-在受影响的行/行中更新字段

  27. 27

    当行失去焦点时如何在HeidiSQL中禁用自动更新/插入

  28. 28

    尝试查找和自动更新日期时间字段时,SQLALchemy出现错误

  29. 29

    保存其他多对多相关模型时,自动更新Django模型中的特定字段

热门标签

归档