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 字段不是唯一的,无法编辑,更新删除的主要内容,如果未能解决你的问题,请参考以下文章

PHPMyAdmin:如何启用表格设计视图?

从多个查询创建视图

从mysql自引用表和另一个表创建视图

无法删除索引或重命名表 PHPmyadmin

新 phpmyadmin 中的外键

创建具有多个表的视图?