MySQL 如果我们在 table 中用无效数据返回 SET FOREIGN_KEY_CHECKS=1 会怎样?

MySQL What happens if we set back SET FOREIGN_KEY_CHECKS=1 in a table with invalid data?

FOREIGN_KEY_CHECKS=0 时实际发生了什么,然后我们添加一些无效的行,或者向 table 添加外键然后在某些行包含无效数据时返回 FOREIGN_KEY_CHECKS=1

索引会被忽略吗?会不会一切正常,就没有关系了?

我的猜测是什么都不会改变,但如果我们尝试编辑该行并保存它,则会弹出一个错误。是这样吗?我无法在文档中确认这一点。

编辑:
我想确切地知道表面以下是否有任何东西会被破坏。查看 table 时,数据可能看起来不错,但我不确定某处是否会丢失某些内容。我相信只有在执行 inserts/deletes/updates 时才会进行外部检查,但我担心在执行这些操作时我不知道的其他事情可能会中断。

看在上帝的份上,我只是向比我更专业的人寻求建议。我不知道这会要求月亮。

您注意到某些事情的唯一方式是当您的数据完整性被破坏时,例如当您有 children 而没有 parents 时。插入语句可能会失败或其他原因。没有其他事情发生。