婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 關于sql腳本導入Oracle時重復生成check約束的問題解決

關于sql腳本導入Oracle時重復生成check約束的問題解決

熱門標簽:理財產品電銷機器人 上海網絡外呼系統 外呼系統好點子 區域地圖標注怎么設置 地圖標注的坐標點 南通電銷外呼系統哪家強 百度地圖標注飯店位置怎么 電話機器人那種好 百度地圖標注注解

前言

最近在工作中一位細心的同事發現產品的全量sql腳本中有一些重復的check約束檢查,就像下圖這樣的

重復腳本

怪異之處還在于,每次執行一遍該腳本,然后導出腳本,在導出腳本中重復的次數就會增加一遍。通過navicat,最終確認每導入一次就會新增加一條重復的check約束,如下圖所示

navicat

這個全量腳本是直接從數據庫中導出的,為了方便導入其他的Oracle數據庫中,從產品的出貨庫導出時手動去掉了服務名、雙引號。

通過如下步驟可復現該問題:

1.創建表

CREATE TABLE PD_WEB_FILEUPLOAD_CHUNK (
ID VARCHAR2(32 BYTE) NOT NULL ,
MD5 VARCHAR2(32 BYTE) DEFAULT NULL NULL ,
CHUNK NUMBER DEFAULT NULL NULL ,
FILE_DIR VARCHAR2(200 BYTE) NOT NULL
)

可以看到上面的腳本中有NOT NULL的標識,執行完后在navicat中可以看到結果是這樣的


navicat

注意看,這里的check約束是帶雙引號的。

2.執行增加check約束的腳本

ALTER TABLE PD_WEB_FILEUPLOAD_CHUNK ADD CHECK (ID IS NOT NULL);
ALTER TABLE PD_WEB_FILEUPLOAD_CHUNK ADD CHECK (FILE_DIR IS NOT NULL);

執行了兩遍后,結果如圖所示


navicat

測試到這里,以為最終終于找到了原因,確認為雙引號的問題。抱著嚴謹的態度,再次確認了一下

3.執行帶雙引號的check約束的腳本

ALTER TABLE PD_WEB_FILEUPLOAD_CHUNK ADD CHECK ("ID" IS NOT NULL);
ALTER TABLE PD_WEB_FILEUPLOAD_CHUNK ADD CHECK ("FILE_DIR" IS NOT NULL);

結果如圖所示:


navicat

靠!居然還是會重復生成!

解決方法

驗證到這里,算是找出了原因。

在全量導出的腳本中,創建表的腳本中已經隱含了檢查約束,如果再顯示的添加檢查約束就會重復生成。所以,解決辦法為需要手動刪除所有顯示的檢查約束。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Oracle數據庫的字段約束創建和維護示例
  • 在Oracle數據庫中添加外鍵約束的方法詳解
  • oracle刪除主鍵查看主鍵約束及創建聯合主鍵
  • oracle 11g em重建報唯一約束錯誤解決方法
  • Oracle約束管理腳本
  • Oracle如何給數據庫添加約束過程解析

標簽:百色 海東 紹興 自貢 中衛 遼源 寧波 昭通

巨人網絡通訊聲明:本文標題《關于sql腳本導入Oracle時重復生成check約束的問題解決》,本文關鍵詞  關于,sql,腳本,導入,Oracle,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《關于sql腳本導入Oracle時重復生成check約束的問題解決》相關的同類信息!
  • 本頁收集關于關于sql腳本導入Oracle時重復生成check約束的問題解決的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 松阳县| 西吉县| 中方县| 巩留县| 固安县| 阜康市| 松潘县| 江川县| 康乐县| 宝兴县| 唐河县| 马龙县| 体育| 古交市| 乌鲁木齐县| 如东县| 夏河县| 玉山县| 昭通市| 台前县| 孝义市| 嵊泗县| 萨嘎县| 大名县| 临安市| 邻水| 上思县| 凤阳县| 枞阳县| 运城市| 天祝| 蕉岭县| 兰溪市| 柘荣县| 洪雅县| 舒城县| 余江县| 耒阳市| 乌鲁木齐县| 泸西县| 武宣县|