解决HeidiSQL提示错误:0 rows updated when that should have been 1

场景:在HeidiSQL中点击一个字段值并进行更改,修改完成后点击其他空白处,出现了以下错误提示!

0 rows updated when should have been 1 

本来没在意这个提示,只是偶然更新失败罢了,但后来慢慢注意到,出现这种情况的频率非常高,100%!!!而且更严重的是查询出来的数据是不准确的!因为数据库涉及到很重要的数据,解决问题迫在眉睫了。

我最先意识到可能是数据库的问题,于是重启了数据库服务和HeidiSQL,很不幸。。。失败了

谷歌百度了很久,也去官网查了,都没有找到好的解决方案。

命不该绝啊,就在这样的关键时刻,看到了官网评论区一个大神给别人的回复:(译)数据表没有主键执行更新操作是非常危险的!我赶紧对号入座,果然没有主键,加上主键后果然再也没有提示过了。

虽然问题解决了,但是还是不太明白其中的原理,为啥数据表不设置主外键,或者引索会导致数据操作不安全呢?希望有专业的大佬能帮我解决这个困惑,不胜感激!