批量執行語句之——禁用所有表的外鍵

来源:http://www.cnblogs.com/void0-0/archive/2016/01/22/5152554.html
-Advertisement-
Play Games

在轉移資料庫,進行數據導入的時候,遇到一件麻煩事,就是表間外鍵約束的存在,導致insert頻頻報錯,批量執行sql語句又是順序執行,沒辦法我只好手動輸入。 然後輸入到一半靈光一閃,為什麼不先把外鍵約束全部禁用先呢?於是我百度到以下資料:oracle刪除(所有)約束禁用(所有)約束啟用(所有)約束(....


在轉移資料庫,進行數據導入的時候,遇到一件麻煩事,就是表間外鍵約束的存在,導致insert頻頻報錯,批量執行sql語句又是順序執行,沒辦法我只好手動輸入。
      然後輸入到一半靈光一閃,為什麼不先把外鍵約束全部禁用先呢?

於是我百度到以下資料: 

oracle 刪除(所有)約束 禁用(所有)約束 啟用(所有)約束

 (2009-06-17 09:56:32)  

執行以下sql生成的語句即可

1

刪除所有外鍵約束 

select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R' 

2

禁用所有外鍵約束

select 'alter table '||table_name||' disable constraint '||constraint_name||';' from user_constraints where constraint_type='R' 

3

啟用所有外鍵約束

select 'alter table '||table_name||' enable constraint '||constraint_name||';' from user_constraints where constraint_type='R'

 在SQL Plus中輸入語句後,生成了很多語句,這些語句其實是沒執行的,複製下來執行一遍就好了。
然後我們可以根據這個腳本一樣的sql語句進行拼裝,得到我們需要的語句:
 
禁用所有外鍵約束:
 select 'ALTER TABLE "QIANHAI"."'||table_name||'"  MODIFY CONSTRAINT  "'||constraint_name||'" DISABLE;' from user_constraints where constraint_type='R' 

啟用所有外鍵約束:
 select 'ALTER TABLE "QIANHAI"."'||table_name||'"  MODIFY CONSTRAINT  "'||constraint_name||'" ENABLE;' from user_constraints where constraint_type='R';


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 參考:http://blog.csdn.net/qq418716640/article/details/8508973http://www.cnblogs.com/mengdd/p/3335508.html效果:一個手指實現(所有手勢事件)和(部分事件的);A. 所有手勢activity_main....
  • 今天工作中遇到特殊的一個任務,就是將兩個自增列值的進行對調變更。SQL Server 平臺修改自增列值由於之前處理過sql server資料庫的遷移工作,嘗試過其自增列值的變更,但是通過SQL 語句修改自增列值,是嚴格不允許的,直接報錯(無法更新標識列 ’自增列名稱‘)。sql server我測試是...
  • 一、下載·安裝·啟動 學習mongoDB第一步下載安裝,度娘有教程不詳細解釋,說一下重要的點。 1 解壓安裝包後創建資料庫文件的存放位置,例如:d:/mongodb/data/db; 2 啟動:D:/mongodb/bin>mongod --dbpath D:\mongodb\data\db;...
  • 最近整理Redis,對sentinel有了更深入的理解,特地總結如下1.主從Redis主從redis實際上是一種主備模式,即主redis宕機後,可以切換從redis繼續提供服務。 缺點: 1.人為關註Master是否宕機 2.無法完成自動切換主從 3.從節點的功能未被充分利用主從...
  • SQL Server代理是所有實時資料庫的核心。代理有很多不明顯的用法,因此系統的知識,對於開發人員還是DBA都是有用的。這系列文章會通俗介紹它的很多用法。如我們在這個系列的文章里所見,SQL Server代理作業由一些列的作業步驟組成,每個步驟是需要執行的不同類型工作。另外在每個步驟里要進行的工作...
  • sqlplus在啟動時會自動運行兩個腳本:glogin.sql、login.sql這兩個文件 執行順序為 1.預設在在$ORACLE_HOME/sqlplus/admin路徑下查找glogin.sql文件執行 2.預設在在當前路徑下查找login.sql文件執行,若未查找到對應文件則執行3 ...
  • -- 創建雇員表:empCREATE TABLE emp( empno INT, -- 員工編號 ename VARCHAR(50), -- 員工姓名 job VARCHAR(50), -- 員工工作 mgr INT, -- 領導編號 hiredate DATE, -- 入職日期 sa...
  • 第一章 第一個C#程式Vs2012密鑰RBCXF-CVBGR-382MK-DFHJ4-C69G801..net和C#的區別大概在2000年,微軟推出了一種革命性的產品--.NET(戰略)目標:任何人,在任何地方,使用任何終端設備,都可以訪問微軟提供的服務。.net Framew...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...