Comments 12
UPDATE files SET file_md5=MD5(file_blob) WHERE id=6
+1. Именно так правильно делать, а автор топика написал глупый запрос. Оторвать руки и заставить читать документацию.
Ладно, признаю, что я неправильно составил запрос. Опыта работы с БД не хватает. Я почему-то подумал, что MD5() работает ТОЛЬКО с SELECT. Мне на самом деле надо было назначить MD5 почти всем файлам в таблице, а не только ID = 6…
Как бы там ни было, описанный мною трюк работает и может быть при надобности использован.
Главная цель моего поста была именно в этом.
Как бы там ни было, описанный мною трюк работает и может быть при надобности использован.
Главная цель моего поста была именно в этом.
Я не знаком с MySQL, но так не сработает?:
UPDATE `files` SET `file_md5` = MD5( `file_blob` )
WHERE `id` = 6
UPDATE `files` SET `file_md5` = MD5( `file_blob` )
WHERE `id` = 6
Извините но это не баг. Не всё, что присылают в багрепорт оказывается багом. По вашей ссылке вопрошающему вполне объяснили:
«Спасибо за отчет, но в настоящее время вы не можете обновлять таблицу, которую используете в запросе SELECT. Это описано в документации.»
То есть это поведение подразумевается и так сделано специально. И думаю, что и дальше так нельзя будет делать. (И я, если честно, считаю что это правильно)
Thank you for the report, but currently you can't update the same table which you use in
the SELECT part.
This behaviour is documented at:
dev.mysql.com/doc/mysql/en/UPDATE.html
«Спасибо за отчет, но в настоящее время вы не можете обновлять таблицу, которую используете в запросе SELECT. Это описано в документации.»
То есть это поведение подразумевается и так сделано специально. И думаю, что и дальше так нельзя будет делать. (И я, если честно, считаю что это правильно)
на время выполнения селекта таблица лочится, что вполне логично и правильно, приведенный же запрос в посте ошибочен в своей сути, о чем и написал товарищ zed_0xff
Это не баг, как вы себе представляете результат пиления сука, на котором сидите?
обфускация sql?
Sign up to leave a comment.
Не возможно обновить (UPDATE) ту же таблицу, которую используешь в SELECT-запросе