MySQL 数据库 [Err] 1093 - You can't specify target table 'd_alarm' for update in FROM clause

本文解决了MySQL中尝试更新表时出现的错误[Err]1093,并提供了一个具体的例子来展示如何通过更改SQL语句来避免这个错误。

更新数据库时,发生如下错误:

[Err] 1093 - You can't specify target table 'd_alarm' for update in FROM clause

SQL 语句为:

UPDATE d_alarm SET alarmEndTime = '2015-09-11 11:00:24.17' WHERE  (select  case when measurePointId  is null  then 0  else measurePointId end as measurePointId from d_alarm)  = null  AND alarmCode = '29' AND eId = 22

解决方法:

把要更新的几列数据查询出来做为一个第三方表,然后筛选更新。

改为:

UPDATE d_alarm d1 SET d1.alarmEndTime = '2015-09-11 11:00:24.17' WHERE 
 (select  case when d2.measurePointId  is null  then 0  else d2.measurePointId end as measurePointId from (SELECT * FROM d_alarm) d2) =0 AND alarmCode = '29' AND eId = 22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值