zoukankan      html  css  js  c++  java
  • 错误:You can't specify target table 'xxx' for update in FROM clause的解决

    问题:  

      今天在MySQL数据库删除重复数据的时候遇到了一个问题。如下脚本:

    DELETE FROM tempA WHERE tid IN (
    SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age
    )

      会出现报错信息:

      You can't specify target table 'tempA' for update in FROM clause

      大致意思是,在同一语句中,不能先select出同一表中的某些值,再update这个表。

    解决方法:

      需要对上述脚本进行改造,如下:

    DELETE FROM tempA WHERE tid NOT IN (
    SELECT t.tid FROM (
    SELECT MAX(tid) AS tid FROM tempA GROUP BY name,age
    ) t
    )

      查询的时候增加一层中间表,就可以避免该错误。

  • 相关阅读:
    codova 打包vue项目的坑
    vscode 开发wtl 笔记
    redis
    展开/收缩 ul
    ueditor
    xml
    NPOI
    滚动效果,有些浏览器不支持
    fileupload控件上传、文件下载
    excel函数
  • 原文地址:https://www.cnblogs.com/pcheng/p/4950383.html
Copyright © 2011-2022 走看看