【问题标题】:MySQL trigger - how to update specific row in another tableMySQL 触发器 - 如何更新另一个表中的特定行
【发布时间】:2022-11-20 21:09:39
【问题描述】:

我有这两张桌子

**Table tb_data**
tb_id
timestamp
pagid
proid
status
(and many more)

**Table tb_units**
pag_id
pag_sn
user
latest_profile
latest_status
latest_feedback
latest_timestamp

每当在 tb_data 中创建新行时,我希望在 tb_units 中更新一些值。在 tb_units 中,pag_id 是唯一的,每个数字只存在一次。 我如何触发它,以便 tb_data 中的新值在 tb_units 中更新? pagid 等于 pag_id 对应的值 proid 应该更新 latest_profil,status 应该更新 latest_status,timestamp 应该更新 latest_timestamp

最后,我想以 tb_data 的最新 pagid 输入结束,以便在 tb_units 中可用,因为 tb_data 将包含来自同一 pagid 的多行

我尝试了几种不同的方法,并阅读了很多示例,但我就是不明白这些触发器是如何工作的!

最新的例子,这是行不通的:

CREATE TRIGGER update_units
AFTER INSERT ON tb_data
BEGIN
UPDATE tb_units 
   SET latest_profile = tb_data.9C, 
       latest_status = tb_data.91 
 WHERE pag_id = tb_data.86;
END

【问题讨论】:

    标签: mysql


    【解决方案1】:

    不确定,但这样的事情应该有效

    CREATE TRIGGER update_units
    AFTER INSERT ON tb_data
    BEGIN
    UPDATE tb_units 
       SET latest_profile = new.proid, 
           latest_status = new.status 
     WHERE pag_id = new.pagid;
    END
    

    【讨论】:

      猜你喜欢
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 2016-11-10
      • 1970-01-01
      • 1970-01-01
      • 2022-07-08
      • 2011-07-12
      相关资源
      最近更新 更多