← 回總覽

臭名昭著的、存在 20 年的 MySQL Bug #11472 终于被修复了

📅 2026-06-01 07:15 dbaplus社群 软件编程 1 分鐘 1237 字 評分: 82
MySQL Bug #11472 触发器 外键 数据库
📌 一句话摘要 存在 20 年的 MySQL Bug #11472(外键级联操作不触发触发器)终于在 2026 年被修复,本文回顾了其历史、社区反应与修复过程。 📝 详细摘要 本文详细回顾了 MySQL 中一个存在长达 20 年的经典 Bug #11472。该 Bug 由 Omer Barnir 于 2005 年提交,核心问题是当外键约束导致的行级联更新或删除时,目标表上的触发器不会被执行。文章梳理了从 Bug 提交、官方确认、多次承诺修复却一再跳票,到最终在 2026 年通过 WL#17024 被修复的完整历程。文中还收录了大量开发者社区对该 Bug 的调侃、吐槽与“庆祝”,生动展现了这

📌 一句话摘要

存在 20 年的 MySQL Bug #11472(外键级联操作不触发触发器)终于在 2026 年被修复,本文回顾了其历史、社区反应与修复过程。

📝 详细摘要

本文详细回顾了 MySQL 中一个存在长达 20 年的经典 Bug #11472。该 Bug 由 Omer Barnir 于 2005 年提交,核心问题是当外键约束导致的行级联更新或删除时,目标表上的触发器不会被执行。文章梳理了从 Bug 提交、官方确认、多次承诺修复却一再跳票,到最终在 2026 年通过 WL#17024 被修复的完整历程。文中还收录了大量开发者社区对该 Bug 的调侃、吐槽与“庆祝”,生动展现了这一技术问题如何演变为程序员圈内的文化符号。文章最后也提及了修复可能带来的兼容性问题,以及部分用户对旧行为的依赖。

💡 主要观点

- MySQL Bug #11472 的核心是外键级联操作不触发目标表上的触发器。 当通过外键约束间接更新或删除表中的行时,该表上定义的触发器(如 AFTER UPDATE)不会按预期执行,这违反了 ACID 完整性原则。

该 Bug 因修复难度大、存在兼容性风险而被长期搁置。 修复需要改变数据库引擎的底层行为,且可能破坏依赖旧行为(触发器不触发)的应用,导致数据不一致,因此官方多次推迟修复计划。
Bug #11472 已从技术问题演变为程序员社区的文化符号。 长达 20 年的存在使其成为开发者调侃、吐槽和“庆祝”的对象,反映了社区对 MySQL 长期忽视该问题的复杂情绪。

💬 文章金句

- 当由于表中存在外键定义而间接更新/删除表中的行时,该表上的触发器将不会按要求执行。

  • 如果这个缺陷在下一个小版本更新中就被修复,那么原本不会执行的触发器会突然生效。尽管依赖这种行为是非常糟糕的设计,但用户仍有可能在无意间陷入这种场景。
  • 搞什么鬼?我一直很依赖这个功能!请改回来。
  • 什么?!那我们以后每年该给谁买蛋糕呢......

📊 文章信息

AI 初评:82

来源:dbaplus社群

作者:dbaplus社群

分类:软件编程

语言:中文

阅读时间:16 分钟

字数:3871

标签: MySQL, Bug #11472, 触发器, 外键, 数据库

阅读完整文章

查看原文 → 發佈: 2026-06-01 07:15:00 收錄: 2026-06-01 18:00:49

🤖 問 AI

針對這篇文章提問,AI 會根據文章內容回答。按 Ctrl+Enter 送出。