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

时间:2011-07-15 19:09:32

标签: mysql foreign-keys innodb cascade cascading-deletes

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

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

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

复制日志会显示正在发生的事情吗?

1 个答案:

答案 0 :(得分:4)

不,没有办法显示删除的内容 不,它不会出现在复制日志中

我唯一能想到的是查询information_schema个视图,看看哪些表具有FK约束,具体取决于'root'表。

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