【问题标题】:MySQL Workbench joined tables edit - Read OnlyMySQL Workbench 连接表编辑 - 只读
【发布时间】:2014-03-26 04:28:49
【问题描述】:

我在 MySQL Workbench 得到以下查询

SELECT products_name,
    products_weight
FROM zen_products zp
JOIN zen_products_description pd ON zp.products_id = pd.products_id

由于两个表中的 products_id 相同并且这些是主键,我该如何从一个查询输出中编辑两个表。正如它目前所说:只读。

【问题讨论】:

  • 可能与通过网络搜索找到此线程的人相关的 MySQL Workbench 错误:views' result grids are not editable。请注意,这适用于 视图,而不是连接表,它满足“updatable”所需的所有其他约束,并且可以使用直接 SQL 查询进行修改。

标签: mysql primary-key mysql-workbench


【解决方案1】:

没有工作台用户,但一般在数据库中没有“编辑”命令。这是一个术语工作台似乎已经发明,它可能意味着两件事:

  1. 编辑表/数据库结构。在 SQL 中,这是通过 ALTER TABLE ... 命令完成的。

  2. 编辑一个或多个表中的数据。在 SQL 中,这是通过 UPDATEDELETEINSERT 三个命令完成的。

一次只对一个表进行编辑表/数据库结构。执行此操作时不允许加入。这就是为什么有“只读”注释的原因,如果工作台意味着“编辑”。我假设您的意思是编辑数据,尤其是更新数据。一个例子是

UPDATE zen_products zp
JOIN zen_products_description pd ON zp.products_id = pd.products_id
SET
zp.products_name = pd.another_column,
zp.products_weight = zp.products_weight + 1;

请注意,更新表对主键或任何内容没有任何限制。您可以加入任何领域并仍然对其进行更新。当然,您有权这样做。请执行此查询:

SHOW GRANTS FOR username@host;

查看您是否有权更新表格。

【讨论】:

  • MyPHP Admin & Workbench 允许编辑单个字段,但是当表连接在一起时它不可用,因为它无法跟踪主键 - 这意味着它不知道要编辑哪个字段。有什么建议,如何快速更新列?
  • @damek132 编辑了我的答案。
猜你喜欢
  • 2012-06-04
  • 2015-12-17
  • 2013-06-11
  • 2018-07-18
  • 1970-01-01
  • 1970-01-01
  • 2015-01-19
  • 2015-08-18
  • 2013-11-03
相关资源
最近更新 更多