【发布时间】:2015-12-09 18:09:20
【问题描述】:
出现错误:
当前选择不包含唯一列。网格编辑, 复选框、编辑、复制和删除功能不可用。
如何在从多个表生成的视图中获取唯一字段?
当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用。
【问题讨论】:
标签: mysql phpmyadmin
出现错误:
当前选择不包含唯一列。网格编辑, 复选框、编辑、复制和删除功能不可用。
如何在从多个表生成的视图中获取唯一字段?
当前选择不包含唯一列。网格编辑、复选框、编辑、复制和删除功能不可用。
【问题讨论】:
标签: mysql phpmyadmin
这比phpmyadmin更通用,但对“Updatable and Insertable Views”有一些限制。这是要点:
要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。
然后更具体地说是多表视图:
假设可以使用 MERGE 算法对其进行处理,有时可以更新多表视图。为此,视图必须使用内连接(不是外连接或 UNION)。
还有一些额外的限制,即使在单个表视图上也会阻止更新/插入:
更具体地说,如果视图包含以下任何内容,则它是不可更新的:
聚合函数(SUM()、MIN()、MAX()、COUNT() 等)
区别
分组方式
拥有
联合或联合所有
选择列表中的子查询
某些连接(请参阅本节后面的其他连接讨论)
在 FROM 子句中引用不可更新的视图
WHERE 子句中的子查询引用 FROM 子句中的表
仅指文字值(在这种情况下,没有要更新的基础表)
ALGORITHM = TEMPTABLE(使用临时表总是使视图不可更新)
对基表任意列的多次引用
【讨论】: