在我的 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
提交
取消