MySQL Workbench编辑表数据是只读的

在MySQL Workbench 5.2.37中尝试编辑表数据时,它处于只读模式。

只有当表有主键时才可编辑。

有没有任何修复处理表没有主键?

谢谢

作为build议之一,我尝试升级WB 5.2.40。 但仍然存在这个问题..可以任何一个帮助请..

我假设表有一个主键。 首先尝试运行一个解锁表命令,看看是否修复它。

如果一切都失败了,你可以改变表格来创build一个新的主键列自动增量,应该有希望修复它。 一旦你完成,你应该能够删除列没有任何问题。

一如既往,您想在更改表格前进行备份。 🙂

注意:如果这是你的问题,MySQL工作台不能没有主键。 但是,如果您有多到多的表,您可以将两个列都设置为主键,这样可以编辑数据。

如果该表没有主键或定义了唯一的非空值,则MySql工作台无法编辑数据。

如果为数据库连接设置默认模式,则Select将以只读模式运行,直到您明确设置模式

USE mydb; SELECT * FROM mytable 

这也将在编辑模式下运行:

 SELECT * FROM mydb.mytable 

(MySql 5.2.42 / MacOsX)

我希望这有帮助。

这是MySQLWorkbench中的已知限制 (不能编辑没有PK的表):

编辑表格:

方法1 🙁方法不适用于某些病例)
右键单击对象浏览器中的表格,然后从中select“编辑表格数据”选项。

方法2:
我宁愿build议你添加主键相反:

 ALTER TABLE `your_table_name` ADD PRIMARY KEY (`column_name`); 

您可能首先要删除现有的行:

 Truncate table your_table_name 

根据这个bug ,这个问题在Workbench 5.2.38中对某些人来说是固定的,对于其他人来说可能是5.2.39,你能升级到最新版本(5.2.40)吗?

或者,可以通过以下方法解决问题:

 SELECT *,'' FROM my_table 

将鼠标hover在mysql工作台上的“只读”图标上,可以看到一个工具提示,解释了为什么无法编辑。 就我而言,它表示,只有具有主键或唯一不可空列的表才能被编辑。

在MySQL Workbench中,你需要一个INDEX来编辑,不需要它是PK(虽然增加一个PK也是一个解决scheme)。

您可以制作一个常规的INDEX或复合索引。 这就是所有的MySQL WB需要修复只读的东西(我有v6.2与MariaDB v。10.1.4):

只需右键单击表格,select“改变表格…”,然后进入“索引”选项卡。 在左侧窗格中为您的索引添加一个自定义名称,在中间窗格中选中一个(确保值是唯一的)或更多字段(只要确保组合是唯一的)

在曼尼托巴的职位指导下,我find了另一个解决scheme。 总之,解决scheme是:

  1. 用USE命令

     USE mydb; SELECT * FROM mytable 
  2. 用一个明确的模式前缀:

     SELECT * FROM mydb.mytable 
  3. GUI

    在对象浏览器“SCHEMAS”窗格上,如果问题相同,则所有数据库图标最初都不会突出显示。 所以你可以右键点击你想成为默认的数据库图标,select“设为默认模式”。

1.)你必须使主键唯一,那么你应该可以编辑。

在“蓝色”模式下右键单击你的表 – > ALTER TABLE,find你的primert键(PK),然后只需勾选checkboxUN,AI就应该已经被检查了。 之后,只需申请,你应该能够编辑表格数据。

2.)您还需要在您的select语句中包含主键

1号不是真的必要,但是一个好的做法。

如果您的查询有任何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; 

然后您可以编辑该行并将行添加到表中。