当前位置: 首页 > 知识库问答 >
问题:

更新期间MySQL错误代码:1175(MySQL-Workbench vs.console)

连俊智
2023-03-14

我非常清楚这个问题可以通过禁用安全更新模式来解决(例如,请参见此处:在MySQL工作台中更新期间的MySQL错误代码: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(例如其中fc.id=20和fs.id<>10),它将在MySQL-Workbench中工作。但这样做需要迭代每一个密钥对组合。

想知道是什么导致了这种行为,或者是我做了什么可怕的错事。使用mysql-workbench 6.3

共有1个答案

欧阳俊捷
2023-03-14

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

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

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

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

  1. 打开工作台首选项,选择“SQL编辑器”部分,并禁用以下首选项:“安全更新”-禁止在WHERE子句或no LIMIT子句中没有键的情况下进行更新和删除。
  2. 运行设置sql_safe_updates=0;
 类似资料:
  • 本文向大家介绍MySQL 错误代码1175:安全更新,包括了MySQL 错误代码1175:安全更新的使用技巧和注意事项,需要的朋友参考一下 示例 尝试更新或删除记录而不包括WHERE使用该KEY列的子句时出现此错误。 要执行删除或更新-输入: 要再次启用安全模式,请输入:            

  • 问题内容: 我正在尝试更新该列以为其赋予值1。我使用MySQL工作台,并从工作台内部在SQL编辑器中编写语句。我正在编写以下命令: 它给了我以下错误: 您正在使用安全更新模式,并且试图更新不具有使用KEY列的WHERE的表。要禁用安全模式,请切换选项…。 我跟着指示,我不加以制止,从选项菜单,然后再。仍然会出现相同的错误,并且我无法更新此值。拜托,告诉我哪里错了? 问题答案: 我找到了答案。问题是

  • 我想使用MySQL5.7和MySQL Workbench6.2在表中插入一些行。当我尝试它时,我得到了错误1175(在安全更新模式下没有WHERE的更新)

  • 我试图更新一个列,但在更新过程中总是有相同的错误,如果我不想禁用“安全更新模式”,我该如何解决这个问题?这是我的查询 错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有使用键列禁用安全模式的表,请在“首选项”中切换该选项-

  • 我试图从交易编号相同的<code>包 错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有WHERE的表,该表使用了键列。要禁用安全模式,请在首选项中切换该选项- 下面是命令: 我认为我正在使用一个,其中使用了一个键列(< code>transactionNo是< code>Payment的主键)。我是不是写错了?

  • 我有一个特定的MySQL语句,它确实在其子句中指定了所需的主键,但在MySQL工作台中运行时仍然产生错误1175。 在MySQL工作台更新期间,我完全知道MySQL错误代码:1175。我的情况似乎与更新期间的MySQL错误代码:1175相同(MySQL-Workbench vs.console)。与提问者一样,我不希望禁用MySQL-Workbench的“安全更新/删除”选项。那个问题没有得到解决