今天碰到了一个很奇怪的问题,一直运行的好好的单元测试代码,在执行到数据库更新操作时,要么是卡住不动了,要么就是出现外键约束问题。我还以为是自己代码出问题了,就一直在修改代码。

后来发现,这其实是我安装的插件 DB Browser导致的。 我使用这个插件来查看数据和执行SQL语句,但是我忘记了在建立连接时勾选了Auto-Commit,执行SQL语句后,又没有点击Commit按钮。这样子,在执行语句后,事务一直是未提交状态。其它连接做操作时,就得等待了。

勾选了Auto-Commit后,问题就解决了。蛋疼了一天。