SQL脚本导入oracle时检查约束重复的问题解决
前言一位细心的同事最近发现,产品的完整SQL脚本中有一些重复的检查约束,如下所示
重复的脚本
奇怪的是,每次执行脚本时,脚本,然后是出口,在出口脚本重复的次数会增加一次。通过Navicat,最后证实,反复检查约束添加到每个输入,如下图
Navicat
这个完整卷脚本直接从数据库导出。为了便于导入其他Oracle数据库,将从产品发货库中手动删除服务名称和双引号。
以下步骤可以恢复以下步骤:
1。创建一个表
创建表(pd_web_fileupload_chunk
ID VARCHAR2(32字节)不为空,
MD5 VARCHAR2(32字节)默认的空值,
块号默认NULL无效,
file_dir VARCHAR2(200字节)不为空
)
你可以在上面的脚本看不空的标志,和执行后,你可以看到结果是这样在Navicat
Navicat
注意,这里的检查约束是双引号。
2。执行脚本以增加检查约束
修改表pd_web_fileupload_chunk添加检查(ID不为空);
修改表pd_web_fileupload_chunk添加检查(file_dir不为空);
两次之后,结果如图所示。
Navicat
这里,觉得终于找到原因,确认为双引号的问题。以严谨的态度,我再次确认它。
三.使用双引号执行检查约束的脚本
修改表pd_web_fileupload_chunk添加检查(ID不能为空);
修改表pd_web_fileupload_chunk添加检查(file_dir不为空);
结果如图所示。
Navicat
通过!它仍然会重复!
解决方法
为了证实这一点,我们得找出原因。
在完全导出的脚本中,脚本中隐含了一个检查约束来创建表,如果再次显示了添加的检查约束,它将被重复。因此,解决方案是手动从显示中删除所有检查约束。
总结
以上就是本文的全部内容。希望本文的内容能给大家的学习或工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的支持。