【问题标题】:What is the most efficient way update multiple rows in a database and log it?更新数据库中的多行并记录它的最有效方法是什么?
【发布时间】:2019-05-18 05:23:22
【问题描述】:

我正在制作一个相对简单的库存系统,在该系统中使用连接到 Python 的 MySQL 存储和更新数据。在添加库存时,最终用户会将值输入界面并将购买票号与该交易相关联。然后,日志将指示购买票 x 将单位添加到库存中。

在单个采购单中,库存中的多个项目可能会增加,即,每个采购单都需要更新库存表中的几行。

但是,我在概念化更新多行同时仍将购买票号与交易相关联的有效方法时遇到了麻烦。我打算使用一个简单的 UPDATE 语句,但不知道如何链接票号。

我正在考虑为购票制作一张表格,但认为仅使用 UPDATE 来增加库存会更有效,但我似乎错了。打算使用类似的东西:

UPDATE stock SET count + x WHERE id = y;

其中 x 是库存增加了多少,y 是特定产品的唯一 ID。

TL;DR 是否有任何有效的方法来更新单列中的多行,同时还将用户输入的数字与该事务相关联?

【问题讨论】:

  • 我认为有一个购买票据日志记录所有交易记录并限制股票 ID 是有意义的,因此对于一次购买,日志管理器将发生多次插入,例如交易 x 影响股票 a 和b,然后插入 x,a 和另一个插入 x,b 您可能还想将金额包含在另一列中

标签: python mysql sql


【解决方案1】:

不要更新。更新很慢,因为事务必须寻找要更新的每一行。只需附加到表格的末尾。然后使用 Output 子句,这样您就可以访问插入的内容。最后,您可以加入包含主键的结果并将这些键记录在另一个表中。

【讨论】:

  • 在插入重复的主键值时,追加到表的末尾不会导致错误吗?或者您是说插入失败的密钥将被记录并存储在另一个表中?你能帮我澄清一下吗?
  • 您的表应设置为具有作为主键自动递增的标识列。
猜你喜欢
  • 2015-04-04
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-30
  • 2023-03-17
  • 1970-01-01
相关资源
最近更新 更多