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

MySQL错误代码:在使用WHERE子句进行更新期间出现1175

谷梁永年
2023-03-14

我试图从交易编号相同的<code>包

错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有WHERE的表,该表使用了键列。要禁用安全模式,请在首选项中切换该选项-

下面是命令:

UPDATE Payment py
SET total = (SELECT SUM(price) FROM Package pk
             WHERE py.transactionNo = pk.transactionNo);

我认为我正在使用一个,其中使用了一个键列(< code>transactionNo是< code>Payment的主键)。我是不是写错了?

共有1个答案

东方高洁
2023-03-14

在这种情况下,您可以使用一个正确的更新与使用子查询的连接

UPDATE Payment py
INNER JOIN (
    SELECT pk.transactionNo, SUM(price) sum_price
    FROM Package pk
    GROUP BY pk.transactionNo
    WHERE py.transactionNo = pk.transactionNo
) t on  py.transactionNo = t.transactionNo

SET py.total =t.sum_price
 类似资料:
  • 这是表的create表 我在这里做错了什么?为什么在where子句中使用主键时会出现这个错误?

  • 我非常清楚这个问题可以通过禁用安全更新模式来解决(例如,请参见此处:在MySQL工作台中更新期间的MySQL错误代码:1175)。但是,我不希望禁用安全更新模式(有很多很多解决方案提出了这一点)。 类似地,我知道将WHERE子句设置为匹配所有内容的KEY-value应该会起作用。但在mysql-workbench上似乎并不起作用--至少不是我希望的那样(或它在控制台上的工作方式)。 例如,以下操作

  • 本文向大家介绍使用MySQL WHERE子句中的多个值进行更新,包括了使用MySQL WHERE子句中的多个值进行更新的使用技巧和注意事项,需要的朋友参考一下 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 这是使用WHERE子句中的多个值更新的查询- 让我们再次检查表记录- 这将产生以下输出-

  • 我搜索了互联网、文档和stackoverflow上的大量内容,但都没有结果。我使用MySQL Workbench尝试在特定列的末尾连接一些附加值 我的原始代码是: 但是,这引发了一个错误“错误代码:1093。您不能在From子句中指定目标表“翻译”以进行更新”。我在stackoverflow上搜索并将我的代码更改为: 现在会抛出“错误代码:1175。您正在使用安全更新模式,并且您尝试更新一个没有使

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

  • 我试图在WHERE子句中将一个列从外部查询传递给内部查询,如下所示,MySQL不喜欢这样做。我不确定如何重写这个查询使其工作。 我很想知道如何让这个工作或重写它,使它将工作。我使用的是MySQL5.6,所以我没有可用的窗口函数,否则我认为可以工作。