1

以下是我的看法:

select 
    `u`.`last_name` AS `last_name`,
    `u`.`first_name` AS `first_name`,
    `u`.`user_eid` AS `user_eid`,
    `um`.`user_id` AS `user_id`,
    `u`.`user_id_req` AS `user_id_req`
from
    (`user` `u`
    left join `user_eid_user_id_map` `um` ON ((`u`.`user_eid` = `um`.`user_eid`)))

没有任何函数或子句会导致它使用临时表,但它以只读方式返回。谁能指出为什么以及我可以做些什么来使其能够更新基础表的原因?

我认为原因可能是left join,但这不在 MySQL 文档中描述的列表中。

4

1 回答 1

0

来自http://dev.mysql.com/doc/refman/5.0/en/create-view.html

一些视图是可更新的。也就是说,您可以在 UPDATE、DELETE 或 INSERT 等语句中使用它们来更新基础表的内容。要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。还有某些其他构造使视图不可更新。

于 2014-07-25T18:47:43.350 回答