发现问题
最近,我使用Navicat频繁的导入导出测试数据库发现,在导出的sql文件中检查约束的语句重复了很多次。如下图
同时发现,在navicate中也同样存在重复的check约束。每导出导入一次建表语句后,都会增加一次约束检查。
例如sql文件建表语句中有一个约束检查的语句。导入数据库中,就成了2个相同的检查约束。这就很奇怪了。
排查问题
检查约束在新建表时是没有的,那导出时存在,肯定是由系统生成的。
于是我注意到了sql中的建表语句里面的非空字段。
解决方案
恍然大悟,这个检查约束的确是系统自己生成的,但导出sql时没有取消导出检查约束的选项,目前只能手动删除约束语句了。
在sql建表语句中,一个check约束语句也不需要留。