更新查询在 mysql 工作台中不起作用
Posted
技术标签:
【中文标题】更新查询在 mysql 工作台中不起作用【英文标题】:Update query not working in mysql workbench 【发布时间】:2016-03-02 11:32:09 【问题描述】:我有一个 mysql 查询,如下所示:
UPDATE signup SET lastname='Lastname', password='123'
WHERE firstname='Firstname';
我正在使用 MySql Workbench 来执行查询。
但它没有更新行并显示此错误:
您正在使用安全更新模式,并且您尝试在不更新的情况下更新表 使用 KEY 列的 WHERE 要禁用安全模式,请切换选项 在 Preferences -> SQL Editor 中并重新连接。
【问题讨论】:
"显示错误" => 哪一个? 我的错误是 - 您正在使用安全更新模式,并且您尝试更新没有使用 KEY 列的 WHERE 的表 要禁用安全模式,请切换 Preferences -> SQL Editor 中的选项并重新连接。 请查看类似问题http://***.com/questions/11448068/mysql-error-code-1175-during-update-in-mysql-workbench ***.com/questions/11448068/…的可能重复 【参考方案1】:我认为这与SAFE UPDATES
没有任何关系,因为您已明确表示WHERE
您想进行更改。
我遇到了同样的问题,但我尝试将 列的名称 包含在反引号 ` 中并且它起作用了。您可以在键盘上的数字 1 左侧找到反引号。
您可以尝试的另一件事是SELECT
表格 并双击您想要UPDATE
的项目,然后应用窗口右下角的更改。
【讨论】:
【参考方案2】:MySQL
可以帮助您避免一次更新/删除多行。为此,它不允许您在不传递 ID 参数的情况下运行 UPDATE
查询。这称为SAFE UPDATES
模式。
正如@ManojSalvi 所说,您可以从设置中永久设置它。
如果您想暂时禁用SAFE UPDATE
模式,可以尝试以下操作:-
SET SQL_SAFE_UPDATES = 0;
UPDATE signup SET lastname='Lastname', password='123'
WHERE firstname='Firstname';
SET SQL_SAFE_UPDATES = 1;
【讨论】:
【参考方案3】:“安全模式”在 MySQL 工作台中默认开启。您可以更改它转到左上角的mysqlworkbench –> 首选项–> sql 编辑器–> 取消选中安全模式,然后尝试重新连接。或者你可以输入
SET SQL_SAFE_UPDATES = 0;
这也是一样的。
【讨论】:
【参考方案4】:在 mysql workbench 中默认启用安全模式,因此如果您的 WHERE
子句没有密钥,它将阻止运行查询。尝试使用这些步骤禁用它 -
Edit
> Preferences
> Sql Editor
> uncheck the "Safe Updates"
注意 - 尝试重新连接服务器 (Query
> Reconnect to Server
) 然后再次运行查询。
【讨论】:
要应用此解决方案,请在取消选中后重新启动您的 MySQL 工作台,它将起作用。【参考方案5】:[编辑] @ManojSalvi 知道了,工作台相关
MySQL error code: 1175 during UPDATE in MySQL Workbench
对我来说工作得很好......
SQL Fiddle
MySQL 5.6 架构设置:
CREATE TABLE t
(`firstname` varchar(6), `lastname` varchar(14), `password` varchar(3))
;
INSERT INTO t
(`firstname`, `lastname`, `password`)
VALUES
('Pramod', 'Alfred', '***'),
('test', 'hello h.', '***')
;
UPDATE t SET lastname='Alfred Schmidt', password='123' WHERE firstname='Pramod';
查询 1:
select * from t
Results:
| firstname | lastname | password |
|-----------|----------------|----------|
| Pramod | Alfred Schmidt | 123 |
| test | hello h. | *** |
【讨论】:
正如他已经解释的那样,它在工作台中不起作用,它与查询本身无关 @davejal 他只在我的帖子之后给我们错误消息,所以我找不到它与工作台相关,之后我用a comment指向error code: 1175 during UPDATE in MySQL Workbench的链接 好的,我删除了反对票,但您的回答仍然没有帮助,说明它对您来说很好。你应该试着找出为什么它对他不起作用 @davejal thx;重现错误是首先要做的事情:显示相同的代码工作可能有助于找到错误输入或与环境相关的错误(就像这个错误,因为它是工作台的安全模式,而不是mysql);但是,是的,我通常会尽力提供更多帮助;)以上是关于更新查询在 mysql 工作台中不起作用的主要内容,如果未能解决你的问题,请参考以下文章