我需要删除查询结果中的一些记录。但查询结果标记为Read Only
。即使我查询主键。问题是我的数据库是如此之大(不多,150万条记录),我无法右键单击表并选择Edit table data
,因为我得到错误号。 2008:mysql client ran out of memory
我无法解决(尽管我的电脑有8 GB RAM)。我的数据库加载到localhost中,因此客户端是服务器。请帮忙。
答案 0 :(得分:2)
所以查询:
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 100
或SELECT
条件中添加WHERE
以过滤返回的行。
您还可以转到 “首选项 - > SQL编辑器” 并标记 “限制行” 复选框。如果将其设置为1000,则“编辑表”命令将获取前1000行。然后,您可以通过单击“从数据源获取下一帧记录”按钮移动到下一个“页面”。
你的另一个问题:
编辑结果集并不总是可行的。如果它涉及GROUP BY
或来自多个表的数据,则结果集可能是只读的。在这种情况下,您可以编写DELETE
或UPDATE
语句来为您删除或更新。