Я использую PostgreSQL 8.4, но я думаю, что мой вопрос может быть расширен до большинства СУБД.
Мне нужно выполнить операцию изменения данных, такую как обновление или удаление для тех строк, где указанный столбец имеет значениеиз указанного набора.Например, я хочу удалить те строки, где id находится в (1,4,7,8).
Вся операция должна быть либо успешной, либо неудачной, поэтому у меня есть два варианта:
- Использовать синтаксис
IN
, например
DELETE FROM my_table WHERE id IN (1,4,7,8)
- Использовать несколько отдельных операций, выполняемых в одной транзакции, например
DELETE FROM my_table WHERE id = 1;
DELETE FROM my_table WHERE id = 4;
...
Есть ли разница между этими двумя подходами при выполнении в виде простых команд SQL?Какой из них лучше?
Те же вопросы при использовании подготовленных JDBC операторов для этих операций?