2013-10-10 50 views
4

使用Oracle SQL Developer,可以使用「工具」>「數據庫導出」菜單項將數據庫導出到SQL腳本(僅限INSERT語句)。問題在於表格是按字母順序導出的,而且似乎無法更改該順序(或者我至少沒有找到如何操作)。Oracle SQL Developer:根據外鍵約定以特殊順序導出數據庫

這是一個問題,因爲當您有外鍵約束時,導出的SQL腳本可能無法導回,因爲父項必須在子項之前插入。比方說B是父母和A的孩子,(簡化)的Oracle SQL Developer導出SQL腳本文件將是:

INSERT A; <-- error: B is needed 
INSERT B; 

那麼,有沒有人解決:

  • 或者導出數據庫自動排序的表根據外鍵約束插入語句,或者手動指定表插入語句的順序,
  • 或者暫時禁用外鍵約束以導入腳本按字母順序排列,然後重新啓用約束條件

PS:這個想法是讓表結構不變,只導入數據。

+0

你是不是想克隆數據庫? – Lokesh

+0

@Lokesh不,只是爲了讓SQL腳本插入我當前擁有的數據,以後我可以使用它重新創建數據庫。 – sp00m

+0

我看到了一個選項,可以在Sql開發人員中自動包含依賴關係。可能是你可以嘗試。 – Lokesh

回答

0

有一種方法可以手動指定表插入語句的順序。

在SQL開發:工具>導出數據庫。

如果您只想要表中的數據,請取消選擇「導出DDL代碼」選項。

「指定數據」窗口,現在你可以手動指定需要的插入順序表(在您的示例中,表A之前表B)。

這應該做的伎倆!它至少爲我做了。

自動的方式來做到這將是更好不過,因爲它可能是,如果你有大量的表有點乏味......

相關問題