在我的 java 應用程序中,我使用 SCRIPT 命令備份某些表。當我嘗試將此生成的備份腳本恢復到現有數據庫時,出現錯誤Sequence "SYSTEM_SEQUENCE_6DBC2231_8C34_46B3_9CB9_2BC9E42CECA2" already exists似乎“SCRIPT”命令正在為數據庫中的每個系統序列生成“CREATE SEQUENCE”行。不僅針對選擇備份的表的序列,而且針對所有表的所有序列。因此,在恢復時,備份腳本嘗試為未受影響的表創建序列,但失敗了。當然。這是 SCRIPT 命令中的錯誤還是我遺漏了什么?
2 回答
江戶川亂折騰
TA貢獻1851條經驗 獲得超5個贊
SCRIPT不是備份命令,而是數據/元數據導出命令。不過,您可以將其用于備份目的。但是您需要一個新的空數據庫來將此類腳本加載到其中。
它按設計從所有模式或僅從指定模式導出所有序列。
您可以使用命令
DROP的子句SCRIPT。通過此子句,附加DROP TABLE命令將包含在此類腳本中。DROP TABLE命令還會刪除自動創建的生成列序列。DROP ALL OBJECTS您可以在該命令之前執行該命令RUNSCRIPT。您可以關閉所有連接,刪除數據庫,創建一個新數據庫并
RUNSCRIPT在其中執行。
呼如林
TA貢獻1798條經驗 獲得超3個贊
我不認為這是SCRIPT命令錯誤,正如它所說......
從數據庫創建 SQL 腳本。
因此,當您第一次創建序列時,請確保如果存在如下所示的序列,則不會創建序列。
CREATE SEQUENCE IF NOT EXISTS
然后SCRIPT命令應該在備份腳本時復制相同的內容。
添加回答
舉報
0/150
提交
取消
