我想將數據插入數據庫到不同的表中。由於約束條件,我必須按照特定的順序進行此操作。這意味着,首先插入表a,然後b,然後c,....並且不混合表格。 但我正在編寫一個程序,它獲得多個csv文件,並應將它們導入到數據庫中,但程序無法知道什麼是正確的順序。所以我認爲交易是正確的方式,因爲我聽說,數據一致性必須只存在於交易結束時。但是,這並不適用Java Oracle Transaction
我的代碼看起來像這樣:
Connection connection = DriverManager.getConnection(url, user, pw);
connection.setAutoCommit(false);
Statement statement = connection.createStatement();
statement.addBatch("INSERT INTO c ....");
statement.addBatch("INSERT INTO a ....");
statement.addBatch("INSERT INTO b ....");
statement.addBatch("INSERT INTO a ....");
// ...
statement.executeBatch();
statement.close();
connection.commit();
但我會得到ORA-02291(完整性約束違反):-(
如果你使用一個事務,你仍然需要插入正確的順序 – Janco