2016-05-23 27 views
0

我正在使用SQL Developer來訪問oracle數據庫。我想導出該表並保持主鍵的生成。 由於我不能使用SQLloader,我只能使用「導出到SQL」。使用SQL Developer導出並保留主鍵

下面是一個例子:

數據庫1是一個包含我想複製到另一個數據庫(的Database2)數據的數據庫。 Database1上的下一條記錄將獲得主鍵200.

Database2應從Database1獲取所有數據(包括主鍵,外鍵等等等等)。當我把表放到那裏並使用sql開發人員給我的sql重新創建它並創建一個新記錄時,它將得到ID 92(示例!!)。

這肯定會引發我的問題。

有什麼辦法來創建表,並確保它會得到相同的主鍵,如果它會運行運行Database1?

+0

你的意思是你有一個序列,你不知道如何使它產生更高的數字?無論如何,重新創建序列。 –

+0

我不知道如果我有一個序列 - 我有一個主鍵在其中的表。有沒有辦法找出主鍵的順序? – Breiti

+0

找到了序列:) – Breiti

回答

1

可能在您使用序列的情況下,您可以在表格中的其中一個觸發器中找到它。接下來應該改變如下的序列:

DROP SEQUENCE my_seq; 

CREATE SEQUENCE my_seq 
START WITH 200 
MAXVALUE 9999999999999999999 
MINVALUE 1 

這樣,讓你加載數據。但我認爲從一個數據庫複製PK到另一個不是一個好主意,因爲PK對存儲級別數據敏感,而不是業務數據