【问题标题】:MySQL Update statement errorMySQL 更新语句错误
【发布时间】:2011-05-03 19:22:19
【问题描述】:

我有两个脚本,一个用于插入,另一个用于更新。

我的更新按钮脚本正在使用最新插入的 ID,并继续如下:

Update tblsurvey
set WouldLikeToBeSeenOnSite = 'sadffas'
and DislikedOnSite = 'asdfsadfsadf'
and OtherNewsWebsitesRead = 'asdfsadfa'
and LikedOnOtherNewsSites = 'asdfsadfas'
and IPAddress = '172.16.0.123'
and DateAnswered = current_date()
where SurveyResponseId in (select max(SurveyResponseId) from tblsurvey);

显然,“where”子句会产生错误:

1093 - you cant specify target table 'tblsurvey' for update in FROM clause. 

有没有其他方法可以使用我正在更新的同一个表的最新插入的 ID?

谢谢。

【问题讨论】:

    标签: mysql sql sql-update mysql-error-1093


    【解决方案1】:

    您不能将同一张表(在本例中为表 tblsurvey)同时用于子查询 FROM 子句和更新目标。

    UPDATEDELETE 操作使用同一张表进行更新/删除和子查询是非法的。

    【讨论】:

    • 好吧,因为我对此无能为力,所以我决定创建另一个 sp 来获取最后插入的 id.. 无论如何,谢谢。 :)
    【解决方案2】:

    等一下。为什么要使用 AND 来分隔 SET 子句元素?必须用逗号分隔。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-05
      • 2012-10-11
      • 2021-12-25
      • 2016-12-18
      • 1970-01-01
      • 2018-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多