MYSQL错误代码:1175在更新期间(MySQL-WorkBench vs. Console)

问题描述 投票:0回答:2

AM非常意识到,可以通过启用禁用安全更新模式来解决此问题(例如,请参见此处:Mysql错误代码:1175在MySQL WorkBench中更新期间)。但是,我不希望禁用安全更新模式(并且有许多解决方案提出了这一点)。

相似,我知道将Where子句设置为匹配所有内容应该可以起作用的键值。但是,似乎在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(例如),它将在MySQL-WorkBench中起作用。但是这样做将涉及通过每个关键对组合进行迭代。 

是为了知道是什么原因导致这种行为,或者我在做出可怕的事情。使用mysql-workbench6.3

    

Https://dev.mysql.com/doc/workbench/en/workbench-faq.html#faq-workbench-delete-safe
mysql sql-update mysql-workbench
2个回答
2
投票

toby默认,Workbench配置为未执行删除或更新 不包括键列上的White子句的查询。 使用配置可防止您错误地删除或更新表,因为您在没有密钥的情况下对数据进行批处理更新。

解决这个问题,因为您可能已经知道以下选项。

首先选择WorkBench首选项,选择SQL编辑器部分,并禁用以下偏好:

“安全更新” - 禁止更新和删除,而无需键或无限制条款。

run

    如果您正在使用Workbech,则可以首先执行
  1. WHERE FC.ID = 20 AND FS.ID <> 10 然后执行删除语句
  2. 如果您想使用安全的更新更新数据,则必须重新修复您的从句,以包括对表的主键的引用。参见thispage
    .

2
投票
14:37:45 Alter表订单drop限制订单_ibfk_1错误代码:3940。约束'orders_ibfk_1'不存在。 0.000秒

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.