Вы можете обойти эту ошибку, сделав столбец столбцом KEY. Другими словами, создайте индекс (или ключ) для столбца.
mysql> set sql_safe_updates=ON;
mysql> UPDATE actor SET last_name = 'foo' WHERE last_update > '2019-06-02 00:00:00';
ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column
mysql> alter table actor add key (last_update);
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> UPDATE actor SET last_name = 'foo' WHERE last_update > '2019-06-02 00:00:00';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0
Суть ошибки состоит в том, что вы не можете непреднамеренно заблокировать каждую строку в таблице, если у вас есть условие для неиндексированного столбца.
Способ блокирования работает, он блокирует все строки, которые запрос проверяет для проверки условия, а не только все строки, которые удовлетворяют условию. Если вы запускаете запрос с условием, которое проверяет неиндексированный запрос, он должен исследовать каждую строку в таблице, которая, вероятно, блокирует намного больше, чем вы предполагали заблокировать.