mysql-自动更新另一个表中的事件

mysql-自动更新另一个表中的事件,mysql,sql,database,sql-update,sql-insert,Mysql,Sql,Database,Sql Update,Sql Insert,我有两个表,一个用于存储用户的报告,另一个用于存储用户 1. Report_table -----report_id(P)-----user_id-------- 001 user1 002 user1 003 user3 2.Users table -------user_id(P)-------no_of_reports user1 2

我有两个表,一个用于存储用户的报告,另一个用于存储用户

1. Report_table
-----report_id(P)-----user_id--------
        001           user1
        002           user1 
        003           user3


2.Users table 
-------user_id(P)-------no_of_reports
        user1             2
        user2             0
        user3             1 
现在,每当在report_表中插入一个报告(比如report_id:004,user_id:user1),我都会像这样更新这两个表

INSERT INTO reports_table VALUES (004,`user1`)
INSERT INTO users_table  (user_id,no_of_reports) VALUES (`user1`,1)
  ON DUPLICATE KEY UPDATE no_of_reports=no_of_reports+1;
有没有更好的方法做这件事。。 是否有一种方法可以在插入新报告时自动增加“无报告”计数器的值?

您需要一个触发器:在对报告表执行每次插入操作后触发该触发器

CREATE TRIGGER update_report_cnt AFTER INSERT ON reports_table
FOR EACH ROW
   BEGIN
      UPDATE users_table SET no_of_reports = no_of_reports + 1 where user_id = NEW.user_id;
   END;

(我不确定语法是否正确。我认为插入前触发器也可以工作)

您可以使用插入后的
触发器来处理
触发器


谢谢!这就是我要找的!如果用户表中没有此用户的行,则必须通过在重复键上插入
来更改
更新