Есть ли UPDATE IF
подобный оператор в SQL, который позволяет мне проверять подмножество атрибутов, предоставленных клиентом, на строку, которая нуждается в обновлении?ОБНОВЛЕНИЕ Условие IF перед совершением
например. UPDATE posts SET body = $body WHERE post_id = $post_id IF author_id = $author_id
FIND
, check, и UPDATE
завернутый в транзакцию не такой элегантный, как хотелось бы. Также не проверяются поля, предоставленные клиентом, с помощью предложения WHERE
.
Добавление атрибутов в предложение WHERE
приведет к увеличению количества индексов, которые необходимо создать без каких-либо преимуществ вне проверки.
Я не понимаю. Что вы ожидаете 'IF author_id = $ author_id' делать иначе, чем' WHERE author_id = $ author_id'? –
Обновленный вопрос. – paulkon
Это делает его еще более запутанным. Как вы считаете, что странная функция 'IF' будет быстрее, если индекс отсутствует, чем предложение WHERE? Индексы создаются именно по этой причине: ускоряют поиск данных. Плюс: у вас должен быть указатель на 'author_id', потому что я подозреваю, что это внешний ключ в таблице' author'. –