是否可以在工作台中编辑查询结果?

时间:2012-08-08 10:42:17

标签: mysql

我需要删除查询结果中的一些记录。但查询结果标记为Read Only。即使我查询主键。问题是我的数据库是如此之大(不多,150万条记录),我无法右键单击表并选择Edit table data,因为我得到错误号。 2008:mysql client ran out of memory我无法解决(尽管我的电脑有8 GB RAM)。我的数据库加载到localhost中,因此客户端是服务器。请帮忙。

2 个答案:

答案 0 :(得分:2)

默认情况下,MySQL Workbench设置为安全模式(它们称之为“安全更新”模式),这意味着在没有明确定义带有(主)键或LIMIT参数的WHERE子句之前,无法更新或删除SQL编辑器中的行: / p>

所以查询:

DELETE FROM table WHERE name='xyz'
在使用PK:

定义WHERE之前,

将无效(不会真正删除行)

DELETE FROM table WHERE id=100

DELETE FROM table WHERE name='xyz' LIMIT 1

要在Workbench中禁用安全模式,请转到Edit-> Preferences-> SQL Editor选项卡,然后取消选中“安全更新”复选框。但是要小心! : - )

答案 1 :(得分:-1)

要编辑大表:

您可以右键单击 “发送到SQL编辑器 - >选择所有语句”

然后在运行之前,在LIMIT 100SELECT条件中添加WHERE以过滤返回的行。

您还可以转到 “首选项 - > SQL编辑器” 并标记 “限制行” 复选框。如果将其设置为1000,则“编辑表”命令将获取前1000行。然后,您可以通过单击“从数据源获取下一帧记录”按钮移动到下一个“页面”。


你的另一个问题:

编辑结果集并不总是可行的。如果它涉及GROUP BY或来自多个表的数据,则结果集可能是只读的。在这种情况下,您可以编写DELETEUPDATE语句来为您删除或更新。