更新语句使 Datagrip 抱怨缺少 WHERE 子句

Posted

技术标签:

【中文标题】更新语句使 Datagrip 抱怨缺少 WHERE 子句【英文标题】:Update statement makes Datagrip complain about missing WHERE clause 【发布时间】:2021-10-06 13:18:55 【问题描述】:

我正在使用数据库,并且正在生成随机数据来测试我的前端。每次我希望以某种方式设置每一行时,我都会写

UPDATE medley
SET option = true

此时,Datagrip 抱怨缺少 WHERE 子句,警告我我的查询将更新整个表。但这就是我想要的! 有没有像WHERE any 这样我可以使用的通用 WHERE 子句?

现在我已经添加了一个 ID,以便我可以WHERE id >= 0,但我很好奇是否还有其他选择。

【问题讨论】:

【参考方案1】:

在 DataGrip 中,您需要更改一项设置。 它会阻止您运行这些查询,并提前向您显示警告。

Unsafe query: Update statement without where clause updates all table rows

您将收到错误:错误代码:1175,因为您使用的是安全模式。

禁用安全模式:

toggle the option in Preferences -> SQL Editor and reconnect

【讨论】:

【参考方案2】:

您可以添加一个始终为真的 where 子句:

UPDATE medley
  SET option = true
WHERE true;

【讨论】:

非常有用!但另一个答案更重要【参考方案3】:

运行此类查询后,有ExecuteExecute and supress

选项

【讨论】:

以上是关于更新语句使 Datagrip 抱怨缺少 WHERE 子句的主要内容,如果未能解决你的问题,请参考以下文章

更新和删除数据

更新和删除数据

DataGrip Snowflake 连接器中缺少“身份验证器”

请教大神,DataGrip怎么实现像Navicat这样按筛选条件进行筛选?

VBA SQL 缺少 WHERE 子句的最后一个条件

sql语句中where后边的哪些条件会使索引失效 -- SQL语句优化