最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于sql腳本導(dǎo)入Oracle時(shí)重復(fù)生成check約束的問題解決

 更新時(shí)間:2017年05月18日 10:27:05   作者:YiYing  
這篇文章主要給大家介紹了關(guān)于sql腳本導(dǎo)入Oracle時(shí)重復(fù)生成check約束的問題解決方法,文中給出了詳細(xì)的檢查步驟,對(duì)大家理解和解決這個(gè)問題具有很好的幫助,需要的朋友們下面來一起看看吧。

前言

最近在工作中一位細(xì)心的同事發(fā)現(xiàn)產(chǎn)品的全量sql腳本中有一些重復(fù)的check約束檢查,就像下圖這樣的

重復(fù)腳本

怪異之處還在于,每次執(zhí)行一遍該腳本,然后導(dǎo)出腳本,在導(dǎo)出腳本中重復(fù)的次數(shù)就會(huì)增加一遍。通過navicat,最終確認(rèn)每導(dǎo)入一次就會(huì)新增加一條重復(fù)的check約束,如下圖所示

navicat

這個(gè)全量腳本是直接從數(shù)據(jù)庫中導(dǎo)出的,為了方便導(dǎo)入其他的Oracle數(shù)據(jù)庫中,從產(chǎn)品的出貨庫導(dǎo)出時(shí)手動(dòng)去掉了服務(wù)名、雙引號(hào)。

通過如下步驟可復(fù)現(xiàn)該問題:

1.創(chuàng)建表

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的標(biāo)識(shí),執(zhí)行完后在navicat中可以看到結(jié)果是這樣的


navicat

注意看,這里的check約束是帶雙引號(hào)的。

2.執(zhí)行增加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);

執(zhí)行了兩遍后,結(jié)果如圖所示


navicat

測試到這里,以為最終終于找到了原因,確認(rèn)為雙引號(hào)的問題。抱著嚴(yán)謹(jǐn)?shù)膽B(tài)度,再次確認(rèn)了一下

3.執(zhí)行帶雙引號(hào)的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);

結(jié)果如圖所示:


navicat

靠!居然還是會(huì)重復(fù)生成!

解決方法

驗(yàn)證到這里,算是找出了原因。

在全量導(dǎo)出的腳本中,創(chuàng)建表的腳本中已經(jīng)隱含了檢查約束,如果再顯示的添加檢查約束就會(huì)重復(fù)生成。所以,解決辦法為需要手動(dòng)刪除所有顯示的檢查約束。

總結(jié)

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

相關(guān)文章

最新評(píng)論

句容市| 明溪县| 贞丰县| 镇平县| 弋阳县| 马公市| 年辖:市辖区| 香港| 成都市| 临汾市| 凌云县| 陇川县| 博野县| 依安县| 南华县| 茂名市| 尼勒克县| 习水县| 贡觉县| 衡阳市| 澄城县| 阿拉善左旗| 海南省| 临桂县| 崇信县| 南部县| 汕头市| 永胜县| 潜山县| 日土县| 星座| 崇阳县| 连平县| 积石山| 湖北省| 龙江县| 嵩明县| 年辖:市辖区| 临澧县| 大荔县| 海淀区|