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;
(我不确定语法是否正确。我认为插入前触发器也可以工作)您可以使用插入后的
触发器来处理触发器
谢谢!这就是我要找的!如果用户表中没有此用户的行,则必须通过在重复键上插入来更改更新
。