具有 FK 约束的 MySQL/InnoDB:查找受级联删除影响的表/行

发布于 2024-11-25 01:42:06 字数 161 浏览 1 评论 0原文

我有一个设置有 FK 约束的 MySQL/InnoDB 数据库。如果我删除“根”表中的一行,则从属表将删除相应的行。

如何显示哪些内容已被删除,或者至少哪些表受到影响?

有没有什么简单的方法或者我需要编写一个工具来比较之前和之后?

复制日志会显示发生了什么吗?

I have a MySQL/InnoDB database set up with FK constraints. If I delete a row in a 'root' table, the dependent tables will have corresponding rows deleted.

How can I show what has been deleted, or at least which tables have been affected?

Is there any simple way or will I need to write a tool to compare before and after?

Would a replication log show what's going on?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

疯了 2024-12-02 01:42:06

不,无法显示删除的内容
不,它不会显示在复制日志中

我唯一能想到的就是查询 information_schema 视图以查看哪些表具有取决于“根”表的 FK 约束。

SELECT DISTINCT
  TABLE_NAME FROM REFERENTIAL_CONSTRAINTS 
WHERE 
  CONSTRAINT_SCHEMA = 'yourDatabase'
  AND REFERENCED_TABLE_NAME = 'rootTable'
  AND DELETE_RULE = 'CASCADE'

No, there is no way to show what was deleted
No, it will not show up in replication log

Only thing I can think of, is to query information_schema views to see what tables have FK constraints depending on 'root' table.

SELECT DISTINCT
  TABLE_NAME FROM REFERENTIAL_CONSTRAINTS 
WHERE 
  CONSTRAINT_SCHEMA = 'yourDatabase'
  AND REFERENCED_TABLE_NAME = 'rootTable'
  AND DELETE_RULE = 'CASCADE'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文