【问题标题】:phpmyadmin : created view from multiple table now id field is not unique can't edit,update deletephpmyadmin:从多个表创建的视图现在 id 字段不是唯一的,无法编辑,更新删除
【发布时间】:2015-12-09 18:09:20
【问题描述】:

出现错误:

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

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

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

【问题讨论】:

    标签: mysql phpmyadmin


    【解决方案1】:

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

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

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

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

    还有一些额外的限制,即使在单个表视图上也会阻止更新/插入:

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

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

    • 区别

    • 分组方式

    • 拥有

    • 联合或联合所有

    • 选择列表中的子查询

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

    • 在 FROM 子句中引用不可更新的视图

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

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

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

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

    【讨论】:

    • 是的。 .我正在使用联合,那么我在这里有什么选项可以组合多个可更新的表?
    猜你喜欢
    • 2020-12-12
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多