Я хочу вставить данные в базу данных в разные таблицы.Из-за ограничений я должен сделать это в определенном порядке.Это означает, что сначала вставьте в таблицу a, затем b, затем c, .... и не смешивайте таблицы.Но я пишу программу, которая получает несколько CSV-файлов и должна импортировать их в базу данных, но программа не может знать, каков правильный порядок.Поэтому я думал, что транзакция будет правильным путем, потому что я слышал, что согласованность данных должна существовать только в конце транзакции.Но это не работает
Мой код выглядит так:
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 (нарушение ограничения целостности): - (