MySQL 错误代码:更新期间的 1175(MySQL-Workbench 与控制台)

本教程将介绍MySQL 错误代码:更新期间的 1175(MySQL-Workbench 与控制台)的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

MySQL 错误代码:更新期间的 1175(MySQL-Workbench 与控制台) 教程 第1张

问题描述

我非常清楚这个问题可以通过禁用安全更新模式来解决(例如,请参见此处:MySQL 错误代码:在 MySQL Workbench 中更新期间出现 1175).但是,我不希望禁用安全更新模式(并且有很多解决方案都建议这样做).

同样,我知道将 WHERE 子句设置为匹配所有内容的 KEY-value 应该可以工作.但是,似乎无法在 mysql-workbench 上运行 - 至少不是我希望的方式(或它在控制台上的运行方式).

例如,以下在 mysql-workbench 上不起作用(但在控制台上起作用):

UPDATE FUEL_SOURCES AS FS
INNER JOIN
 FUEL_CATEGORY FC ON FC.FUEL_CATEGORY = FS.FUEL_CATEGORY 
SET 
 FS.FUEL_CATEGORY_ID = FC.ID
WHERE
 FC.ID <> 0 AND FS.ID <> 0

...如果我明确/准确地设置 ID(例如 WHERE FC.ID = 20 AND FS.ID <> 10 例如)它将在 mysql-workbench 中工作.但这样做将涉及遍历每个密钥对组合.

有兴趣知道是什么导致了这种行为,或者我是否做错了什么.使用 mysql-workbench 6.3

推荐答案

来自 https://dev.mysql.com/doc/workbench/en/workbench-faq.html#faq-workbench-delete-safe

默认情况下,Workbench 配置为不执行 DELETE 或 UPDATE在 KEY 列上不包含 WHERE 子句的查询.

这样的配置可以防止您错误地删除或更新表,因为您正在对没有键的数据进行批量更新.

要解决此问题,您可能已经知道以下选项.

    打开您的 Workbench Preferences,选择 SQL Editor 部分,然后禁用以下首选项:

    运行 SET SQL_SAFE_UPDATES=0;

好了关于MySQL 错误代码:更新期间的 1175(MySQL-Workbench 与控制台)的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。