phpmyadmin:从多个表创建视图现在id字段不唯一无法编辑,更新删除

时间:2015-09-13 18:17:47

标签: mysql phpmyadmin

获取错误:

  

当前选择不包含唯一列。网格编辑,   复选框,编辑,复制和删除功能不可用。

如何在多个表生成的视图中获取唯一字段?

当前选择不包含唯一列。网格编辑,复选框,编辑,复制和删除功能不可用。

1 个答案:

答案 0 :(得分:1)

这比phpmyadmin更通用,但对“Updatable and Insertable Views”有一些限制。这是要点:

  

对于可更新的视图,视图中的行与基础表中的行之间必须存在一对一的关系。

然后更具体地说明多表视图:

  

有时可以更新多表视图,假设可以使用MERGE算法进行处理。为此,视图必须使用内部联接(不是外部联接或UNION)。

还有其他限制,即使在单个表视图上也会阻止更新/插入:

  

更具体地说,如果视图包含以下任何内容,则视图不可更新:

     
      
  • 聚合函数(SUM(),MIN(),MAX(),COUNT()等)

  •   
  • DISTINCT

  •   
  • GROUP BY

  •   
  • HAVING

  •   
  • UNION或UNION ALL

  •   
  • 选择列表中的子查询

  •   
  • 某些联接(请参阅本节后面的其他联接讨论)

  •   
  • 引用FROM子句中的nonupdatable视图

  •   
  • WHERE子句中引用FROM子句中的表的子查询

  •   
  • 仅指文字值(在这种情况下,没有要更新的基础表)

  •   
  • ALGORITHM = TEMPTABLE(使用临时表总是使视图无法更新)

  •   
  • 对基表的任何列的多次引用

  •