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