Mysql workbench数据库里数据只读不能修改删除添加,怎么弄

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql workbench数据库里数据只读不能修改删除添加,怎么弄相关的知识,希望对你有一定的参考价值。

mysql workbench数据库里数据只读不能修改删除添加,怎么弄

参考技术A 使用mysqladmin,这是前面声明的一个特例。
mysqladmin -u root -p password mypasswd
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。追问

不是密码的问题,就是不能改数据,readonly了不能删除不能添加

参考技术B 可能时表数据锁死了
1.第一种
使用命令 找到锁的进程:
show processlist;
kill id ;
2.第二种
UNLOCK TABLES;
3第三种
重启mysql
参考技术C 你是用workbench导入的数据吧 你试试用mysql命令行试试然后就会成apply

MySQL Workbench 编辑表数据是只读的

【中文标题】MySQL Workbench 编辑表数据是只读的【英文标题】:MySQL Workbench Edit Table Data is read only 【发布时间】:2012-06-04 14:44:16 【问题描述】:

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

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

没有主键的表有什么解决办法吗??

谢谢

作为我尝试升级 WB 5.2.40 的建议之一。但是这个问题还是存在的。。 有没有人可以帮忙..

【问题讨论】:

建议的问题都不起作用。我无法添加列然后将其删除。迁移到 phpMyadmin 是我现在的选择。 需要PK,这里有一个相关的FAQ -- dev.mysql.com/doc/workbench/en/… 可能与通过网络搜索找到此线程的人相关的 MySQL Workbench 错误:views' result grids are not editable。请注意,此错误仅适用于满足“updatable”所需的所有其他约束并且可以使用直接 SQL 查询进行修改的 视图 【参考方案1】:

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

如果所有其他方法都失败了,您可以更改表以创建具有自动增量的新主键列,这有望修复它。完成后,您应该能够毫无问题地删除该列。

与往常一样,您希望在更改表格之前进行备份。 :)

注意:如果这是您的问题,MySQL 工作台无法在没有主键的情况下工作。但是,如果您有一个多对多表,您可以将两列都设置为主键,这样您就可以编辑数据。

【讨论】:

其实我的问题本身就是我不想在我的表中有主键。请参阅此问题的其他答案。 我认为您在 MYSQL 工作台中做不到,因为程序需要一个主键来确定您要编辑的行。 好的。谢谢托马斯。我的表中包含了主键。 我在使用 DBeaver 时遇到了同样的问题。断开再连接就解决了! 断开连接并再次连接也为我解决了这个问题!【参考方案2】:

如果表没有定义主键或唯一的不可为空,则 MySql 工作台无法编辑数据。

【讨论】:

我想没有办法解决这个问题。 这是最好的答案。如果你可以改变表格,你可以设置PK允许编辑!【参考方案3】:

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

USE mydb;
SELECT * FROM mytable

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

SELECT * FROM mydb.mytable 

(MySql 5.2.42 / MacOsX)

我希望这会有所帮助。

【讨论】:

【参考方案4】:

这是 MySQLWorkbench 中的Known limitation(您无法在没有 PK 的情况下编辑表):

编辑表格:

方法 1:(在某些情况下方法不起作用) 右键单击对象浏览器中的表,然后从那里选择编辑表数据选项。

方法二: 我宁愿建议您添加主键:

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

你可能想先删除现有的行:

Truncate table your_table_name

【讨论】:

MySQL Workbench 的最新版本(我的是 6.3)没有“编辑表数据”选项。【参考方案5】:

将鼠标悬停在 mysql 工作台中的“只读”图标上会显示一个工具提示,解释为什么它不能被编辑。就我而言,它说只能编辑具有主键或唯一不可为空列的表。

【讨论】:

你说的这个图标在哪里? 回答我自己:它位于工作台 6.3 上结果的下方和右侧【参考方案6】:

即使我在选择主键时也遇到了只读问题。我最终发现这是一个外壳问题。显然,PK 列的大小写必须与表中定义的相同。使用:windows上的workbench 6.3

只读

选择leadid,firstname,lastname,datecreated FROMlead;

允许编辑

SELECT LeadID,firstname,lastname,datecreated FROM Lead;

【讨论】:

【参考方案7】:

在 MySQL Workbench 中,您需要一个 INDEX 来编辑,不需要它是 PK(尽管添加 PK 也是一种解决方案)。

您可以创建常规 INDEX 或复合 INDEX。这就是 MySQL WB 修复只读问题所需的全部内容(我有 v. 6.2 和 MariaDB v. 10.1.4):

只需右键单击表格,选择“更改表格...”,然后转到“索引”选项卡。在左侧窗格中为您的索引输入一个自定义名称,并在中间窗格中选中一个(确保值是唯一的)或多个字段(只需确保组合是唯一的)

【讨论】:

【参考方案8】:

根据this bug 的说法,该问题已在 Workbench 5.2.38 中对某些人进行了修复,对于其他人来说可能是 5.2.39 — 您可以将 upgrade 更新到最新版本 (5.2.40) 吗?

或者,可以使用以下解决方法:

SELECT *,'' FROM my_table

【讨论】:

感谢您这么快的回复..备用 SELECT 不起作用..但我可以升级..将升级并检查..非常感谢 egyal... @EscalinNancy:该错误报告中的另一个人评论说,另一种解决方法是使用函数,例如SELECT *, CONCAT('','') FROM my_table。也许这对你有用? 不..它不起作用..我将 concat(''.'') 作为结果集中的另一列,但数据仍然是只读的..现在正在升级 WB @EscalinNancy:我很遗憾听到这个消息 :( 这里的其他人可能更了解问题所在 - 但如果你不接受,他们更有可能会看到这个问题我的回答。 5.2.44也是一样的情况。该数据库是一个高效的数据库,在以前版本的工作台中运行良好。【参考方案9】:

如果您的表处于只读模式,则首先检查的是主键。如果没有定义主键,添加如下,

ALTER TABLE scema_here.table_name_here 添加主键 (your primary key here);

干杯! :)

【讨论】:

【参考方案10】:

在 Manitoba 的帖子的指导下,我找到了另一种解决方案。总而言之,解决方案是:

    使用 USE 命令

    USE mydb;
    SELECT * FROM mytable
    

    带有显式架构前缀:

    SELECT * FROM mydb.mytable
    

    图形界面

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

【讨论】:

【参考方案11】:

1.)您必须使主键唯一,然后您应该可以进行编辑。

在“蓝色”模式中右键单击您的表 -> ALTER TABLE,查找您的primert key (PK),然后只需选中复选框,UN,AI 应该已经被选中。之后只需应用,您应该就可以编辑表格数据了。

2.)您还需要在您的选择语句中包含初级键

Nr 1 并不是真正必要的,而是一种好的做法。

【讨论】:

【参考方案12】:

如果您的查询有任何 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);【参考方案13】:

当您通过连接两个表进行获取时,MySQL 将以只读模式运行,并且两个表中的列包含在结果中。那么你就不能直接更新值了。

【讨论】:

【参考方案14】:

是的,我发现 MySQL 也无法编辑结果表。通常,连接其他表的结果表没有主键。我听说其他人建议将结果表放在另一个表中,但更好的解决方案是使用可以编辑结果表的 Dbeaver。

【讨论】:

【参考方案15】:

取消选中标记的复选,它将启用网格编辑

【讨论】:

取消选中标记的检查,它将启用网格编辑:不工作 - Workbench 8.0

以上是关于Mysql workbench数据库里数据只读不能修改删除添加,怎么弄的主要内容,如果未能解决你的问题,请参考以下文章

MySQL Workbench不能向表中添加数据,右键select rows 看不到可编辑的数据表,怎么办?

使用 DataGrip 或 WorkBench 从 AWS 转储到本地

在mysql workbench中,通过查询语句,为啥无法修改表中的数据?需要改啥设置吗?

MySQL Workbench gnome-keyring-daemon错误的解决

mysql workbench怎么远程连接阿里云数据库

如何用MySQL workbench查询数据