mysql - mysql 中的触发器插入多行而不是一行

标签 mysql triggers mysql-5.7

我正在尝试将来自 4 个不同表的 4 列的总和插入到单独表(名为 bugs)的触发器中,如下所示:

SELECT 
    uat_reopened_stats.release_name,
    (uat_reopened_stats.rate_bugs + qa_reopened_stats.rate_bugs + closed_reopened_stats.rate_bugs + done_reopened_stats.rate_bugs)
INTO @releasename, @bugstotalreopenrate  
FROM qa_reopened_stats
JOIN uat_reopened_stats 
    ON qa_reopened_stats.release_name = uat_reopened_stats.release_name
JOIN closed_reopened_stats 
    ON closed_reopened_stats.release_name = uat_reopened_stats.release_name
JOIN done_reopened_stats 
    ON done_reopened_stats.release_name = uat_reopened_stats.release_name;

INSERT INTO release_stats (release_name, bugs_total_reopen_rate)
VALUES (@releasename, @bugstotalreopenrate)
ON DUPLICATE KEY UPDATE 
    release_name=@releasename,
    bugs_total_reopen_rate=@bugstotalreopenrate;
END

但是,当执行触发器时(并且事先将 release_stats 表清空,我最终会得到 11 (!) 行!

MySQL [jira_statistics]> select * from release_stats;
+--------------+------------------------+
| release_name | bugs_total_reopen_rate |
+--------------+------------------------+
| 2.3.0        | 9.090909004211426      |
| 2.3.0        | 9.090909004211426      |
| 2.3.0        | 9.090909004211426      |
| 2.3.0        | 9.090909004211426      |
| 2.3.0        | 9.090909004211426      |
| 2.3.0        | 9.090909004211426      |
| 2.3.0        | 9.090909004211426      |
| 2.3.0        | 9.090909004211426      |
| 2.3.0        | 9.090909004211426      |
| 2.3.0        | 9.090909004211426      |
| 2.3.0        | 9.090909004211426      |
+--------------+------------------------+

为什么会发生这种情况?

最佳答案

由于某种原因,在将 release_name 设置为表 release_stats 上的主键后,问题消失了。

关于mysql - mysql 中的触发器插入多行而不是一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54752781/

相关文章:

javascript - 将 jQuery 自动完成的值发送回 PHP

php - 如何将二维数据从 Controller 传递到 View ?

MySQL 在值更改时增加用户变量

触发器调用过程时出现 MySQL 错误

javascript - doPost(e) 不会触发 onChange(e) - 在 Google 电子表格中触发更改事件

php - flot 和 mysql jquery

postgresql - postgres 触发器创建索引 : BEFORE INSERT ON hides one row

mysql - 如何在 MySQL 5.7 中的 JSON 数组中获取唯一/不同的元素

MYSQL 5.7.20 - 按合并列顺序左连接 - 非常奇怪的行为

mysql - 在只读事务中创建临时表 - MYSQL 5.7