Эта проблема может быть ограничена только некоторыми версиями Mysql.
С консоли я знаю, что просмотр обновляется:
mysql> select IS_UPDATABLE from INFORMATION_SCHEMA.VIEWS where TABLE_NAME = 'view_company_users';
+--------------+
| IS_UPDATABLE |
+--------------+
| YES |
+--------------+
1 row in set (0.00 sec)
mysql> UPDATE view_company_users SET company_public_phone = '0407111124' WHERE id=511;
ERROR 1288 (HY000): The target table view_company_users of the UPDATE is not updatable
Я импортировал базу данных с другого сервера, где это не проблема, поэтому она должна быть характерна для параметров моего сервера (5.7.21-0ubuntu0.16.04.1)
Это последний стабильный пакет mysql для ubuntu 16.04 во время публикации.
Может ли кто-нибудь сообщить мне, что может быть проблемой, то есть, почему это не позволит мне обновить строку для представления, которое должно быть обновляемым?
В соответствии с запросом. Определение определения (с помощью редакций):
CREATE ALGORITHM=UNDEFINED DEFINER='root'@'localhost' VIEW 'view_company_users' AS select ....
from (((('admin_users' 'au'
left join ...
left join ...
left join .....
left join .....;
Решение здесь - либо использовать "INNER JOINS" вместо "LEFT JOINS", либо установить MariaDB, который, похоже, поддерживает это.