2013-11-24 3 views
1

Мне нужно сделать несколько удалений с параметрами. Я знаю, что существует метод this, но он не имеет параметров. И this все одинаково (без параметров).Jdbc multiple delete

Как я могу сделать это за один вызов к базе данных:

delete from table1 where id_table1=:id_table1

delete from table2 where id_table2=:id_table2

delete from table3 where id_table3=:id_table3

+0

Почему это проблема сделать несколько звонков? –

ответ

1

По моему мнению, использовать несколько ВЕЬЕТЕ в транзакции или использовать триггеры для выполнения каскадных удалений или представить партию следующим образом:

+0

Хорошо, если это невозможно. С помощью этого http://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#addBatch%28java.lang.String%29 я могу сделать multiple delete: addBatch («удалить из таблицы1, где id_table1 =» + id_table1); addBatch («удалить из таблицы2, где id_table2 =» + id_table2), но это не то, что я хочу. – Blocked

+0

Здесь это невозможно, так как ваши инструкции удаления не одинаковы – Shamse

3

Вы не можете, так как ваши УДАЛЕНИЯ заявления не являются одинаковыми. Если вы удаляетесь из одной таблицы, вы можете либо иметь более сложное условие WHERE, либо создать пакет с PreparedStatement; но здесь это невозможно.

+0

+1 для 'PreparedStatement' и использования партии. – Sajmon