在MySQL Workbench 5.2.37中尝试编辑表数据时,其处于只读模式。
仅当表具有主键时,它才可编辑。
有没有表主键的修复程序?
谢谢
作为建议之一,我尝试升级WB 5.2.40。但是仍然存在此问题。任何人都可以帮忙吗。
在MySQL Workbench 5.2.37中尝试编辑表数据时,其处于只读模式。
仅当表具有主键时,它才可编辑。
有没有表主键的修复程序?
谢谢
作为建议之一,我尝试升级WB 5.2.40。但是仍然存在此问题。任何人都可以帮忙吗。
Answers:
我假设表有一个主键。首先尝试运行一个解锁表命令以查看是否可以解决该问题。
如果所有其他方法均失败,则可以更改该表以创建具有自动增量的新主键列,并有望解决该问题。完成后,您应该可以删除该列,而不会出现任何问题。
与往常一样,您希望在更改表之前进行备份。:)
注意:如果这是您的问题,那么MySQL工作台将无法在没有主键的情况下工作。但是,如果您有多对多表,则可以将两列都设置为主键,这样您就可以编辑数据。
SELECT *, CONCAT('','') FROM my_table
。也许这对您有用?
如果查询中有任何JOIN,即使结果全部来自单个表,Mysql Workbench也将不允许您更改表。
例如下面的查询
SELECT u.* FROM users u JOIN passwords p ON u.id=p.user_id WHERE p.password IS NULL;
即使结果仅限于一张表,也不允许您编辑结果或添加行。您必须专门执行以下操作:
SELECT * FROM users WHERE id=1012;
然后您可以编辑该行并将行添加到表中。
SELECT u.* FROM users u WHERE u.id IN (SELECT user_id FROM passwords WHERE p.password IS NULL);
当您通过联接两个表进行获取时,MySQL将以只读模式运行,并且结果中包括两个表中的列。这样就无法直接更新值。