【问题标题】:How to increase or decrease value to another table?如何增加或减少另一个表的值?
【发布时间】:2019-02-05 02:31:03
【问题描述】:

我有两张桌子——袋子和市场。

此时,bags 表中有如下数据:

如果我从市场表中添加数据,表包中的数量列将根据市场表中输入的数量减少。而总价列会计算total_qty(市场)*价格(包)

【问题讨论】:

  • 您似乎想存储从其他列计算的值?这通常是一个坏主意,数据不一致的风险太大。请考虑 viewscomputed columns。 (或使用触发器进行管理。)
  • 真的吗?你能告诉我如何解决这个问题吗?
  • 您需要提供样本数据和想要的结果。你的解释并不像你想象的那么清楚。顺便说一句,你的问题的答案是你需要一个触发器。

标签: mysql sql phpmyadmin


【解决方案1】:

根据我的理解,我建议这个概念使用触发器,

DELIMITER $$
 CREATE TRIGGER trg_insert
 AFTER INSERT ON market

 begin
 update bags set qty = ((select qty from bags where id=1)-(select 
 market.total_qty from market where 
 id=1) ))
 ,price = ((select price from basgs where id=1)-(select market.total_prc 
  from market where 
 market.id=1)))
 where bags.id = 1;
  END$$
 DELIMITER $$

现在我正在使用您提供的静态值, 试试这个代码。

【讨论】:

  • 这是错误先生.. '您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取正确的语法,以便在第 4 行的“开始更新包集数量 = (bags.qty-(从市场 whe 中选择 market.total_qty)”附近使用正确的语法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
相关资源
最近更新 更多