我试图从交易编号相同的<code>包
错误代码:1175。您使用的是安全更新模式,并且您试图更新一个没有WHERE的表,该表使用了键列。要禁用安全模式,请在首选项中切换该选项-
下面是命令:
UPDATE Payment py
SET total = (SELECT SUM(price) FROM Package pk
WHERE py.transactionNo = pk.transactionNo);
我认为我正在使用一个,其中使用了一个键列(< code>transactionNo是< code>Payment的主键)。我是不是写错了?
在这种情况下,您可以使用一个正确的更新与使用子查询的连接
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,所以我没有可用的窗口函数,否则我认为可以工作。