MySQL执行update时的[ERROR 1093]处理方法

2023-11-15

版权声明:声明:本文档可以转载,须署名原作者。 作者:无为 qq:490073687 周祥兴 zhou.xiangxing210@163.com

>update TEST_NOIDX  set CREATETIME=now() where ID in ( select a.ID from TEST_NOIDX a where a.VNAME='Aa');
ERROR 1093 (HY000): You can't specify target table 'TEST_NOIDX' for update in FROM clause

>update TEST_NOIDX b set b.CREATETIME=now() where b.ID in ( select a.ID from TEST_NOIDX a where a.VNAME='Aa');
ERROR 1093 (HY000): You can't specify target table 'b' for update in FROM clause


从oracle转mysql的同志们,估计都会遇到上面这种情况,怎么这样的sql执行不了。

为什么会这样?

字面意思就是update的表不能出现在from语句中,原因是mysql对子查询的支持是比较薄弱的 。

而且手册上面说下面的这些情况都会报错

·  In general, you cannot modify a table and select from the same table in a subquery. For example, this limitation applies to statements of the following forms:
DELETE FROM t WHERE ... (SELECT ... FROM t ...);
UPDATE t ... WHERE col = (SELECT ... FROM t ...);
{INSERT|REPLACE} INTO t (SELECT ... FROM t ...);
Exception: The preceding prohibition does not apply if you are using a subquery for the modified table in the FROM clause. Example:
UPDATE t ... WHERE col = (SELECT (SELECT ... FROM t...) AS _t ...);


两种解决方法,

1.改成inner join,手册上的方法。

2.多加一个嵌套。


>update TEST_NOIDX set CREATETIME = now() where ID in (select id from ( select id from TEST_NOIDX where VNAME ='Aa') aa);
Query OK, 2 rows affected (0.05 sec)
Rows matched: 2  Changed: 2  Warnings: 0

>update TEST_NOIDX b  inner join  ( select a.ID,a.CREATETIME from TEST_NOIDX a where a.VNAME='Aa') c on b.ID=c.ID set b.CREATETIME=now();
Query OK, 2 rows affected (0.04 sec)
Rows matched: 2  Changed: 2  Warnings: 0






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL执行update时的[ERROR 1093]处理方法 的相关文章

  • 在 SQL 中,如何获取特定列中具有最大值的行?

    我有一个疑问 SELECT COUNT as votes a member id FROM ballots a WHERE ballot id 1 GROUP BY a member id 这会产生类似的结果 votes member id
  • Mysql 选择 csv 字符串中的 where 字段

    我想从一个表中进行选择 其中的字段位于传递给存储过程的给定 csv 字符串中 最快的方法是什么 我应该将这些值插入临时表并加入其中吗 或者有没有办法用一个语句来做到这一点 Thanks 做了一些搜索并找到了一个很好的答案 使用MySql的字
  • Php - 您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展

    如何修复下面的错误 您的 PHP 安装似乎缺少 WordPress 所需的 MySQL 扩展 我使用带有 telnet 连接的 NAS 我安装了FFP 0 7 My php ini is in ffp etc php ini我取消了我认为有
  • 从同一mysql服务器的不同数据库复制表

    我有一台带有 2 个数据库的服务器 我想将多个表从一个数据库复制到另一个数据库 目的是我们使用项目中使用的相同用户表 正如在另一个表中使用 InnoDB 和用户表的外键一样 我选择了一种复制方式 为此我对 my cnf 进行了更改 mast
  • Mysql Workbench 无法选择外键

    首先 我检查了很多问题并用谷歌搜索了很多 但没有一个解决我的问题 我正在使用 Mysql Workbench 6 3 创建表 我仅使用 gui 而不是单个查询来创建它们 之后我尝试创建一些外键int 11 列 但 GUI 不允许我这样做 这
  • Django migrate:不创建表

    经过一些错误后 我删除了数据库 删除了所有迁移文件 我留下了init py 现在 当我跑步时 python migrate py makemigrations It creates migrations correctly python m
  • Hibernate save() 和事务回滚

    在休眠状态下 当我save 事务中的一个对象 然后我回滚它 保存的对象仍然保留在数据库中 这很奇怪 因为这个问题不会发生在update or delete 方法 只需用save 这是我正在使用的代码 DbEntity dbEntity ge
  • 拥有两张单独的用户表还是一张更好?

    我的网络应用程序将拥有两种 100 不同的用户 领域 功能和网站目的 一类用户的目的是发布博客 另一类用户的目的是阅读博客并 关注 发布者 他们唯一的共同点是需要 ID 电子邮件 密码和其他一些元数据 例如加入日期等 我应该尝试将它们从同一
  • 在 MySQL 中选择不同的对

    我想选择 A 列和 B 列中具有相同值的行 例如 如果我的表是 A B 1 2 3 4 1 2 4 5 输出应该是 A B 1 2 A SELECT DISTINCT A B FROM table 选择表中的所有值 B SELECT DIS
  • Python 字符串到 SQL IN 参数的列表

    我在 python 中有这个查询 ssim group S1200 S1300 query select WIPMessageCnt from waferdata where recipename in s and equipment an
  • MySQL 不将 ı 视为 i?

    我在 MySQL 5 7 27 中有一个用户表utf8mb4 unicode ci整理 不幸的是 没有像 i 那样进行线程化 以下查询将找不到Y lmaz select id from users where name Yilmaz 我对其
  • mysql 密码 使用 PHP 连接到 MySQL

    在使用 PHP 连接到 MySQL 的教程中 您会看到类似于以下内容的内容 pdo new PDO mysql host localhost dbname mydb myuser mypassword 我在本地主机上有一个以这种方式工作的连
  • PDO::debugDumpParams 的输出是否有最大值?

    使用 PDO debugDumpParams 时 对于 选定 查询 输出显示的字符数是否有最大限制 大约 500 个字符后 查询将在查询中间结束 而在输出准备 query 变量时 将显示完整的查询 此外 当删除查询的某些部分时 它仍然显示一
  • 警告:mysqli_stmt::bind_param():变量数量与准备好的语句中的参数数量不匹配[重复]

    这个问题在这里已经有答案了 我收到以下错误 Warning mysqli stmt bind param Number of variables doesn t match number of parameters in prepared
  • 绕过外键约束强制删除mysql

    我试图从数据库中删除除一个表之外的所有表 最终出现以下错误 无法删除或更新父行 外键约束失败 当然 我可以反复试验来看看这些关键约束是什么 并最终删除所有表 但我想知道是否有一种快速方法来强制删除所有表 因为我将能够重新插入那些我想要的表
  • 连接错误 - SQLSTATE[HY000] [2002] 操作超时

    我在从 Windows 2008 R2 应用程序服务器连接到也在 Windows 2008 R2 上运行的 MySQL 服务器时遇到问题 Laravel 应用程序报告错误 exception PDOException with messag
  • 如何仅提取 mysql 和 php 中具有非零值的列?

    我正在尝试从 mysql 数据库中提取并显示在网页上 仅非零列 哪一列的日期是 0000 00 00 我不想在网页上显示这些列 下面分别是HTML代码和php脚本
  • 在 MySQL 中查找 varchar 是否包含百分号

    找不到这个问题的答案 在 MySQL 中 如何选择特定列 varchar 包含百分号 的行 where col like escape
  • MySQL 中电话号码的最佳数据类型是什么?它的 Java 类型映射应该是什么?

    我正在将 MySQL 与 Spring JDBC 模板一起用于我的 Web 应用程序 我需要存储仅包含数字的电话号码 10 我对使用数据类型的数据类型有点困惑 MySQL 中最适合它的数据类型是什么 为此 Bean POJO 类中的 Jav
  • MySQL 偏移无限行

    我想构造一个查询 显示表中的所有结果 但从表的开头偏移 5 据我所知 MySQLLIMIT需要一个限制和一个偏移量 有什么办法可以做到这一点吗 来自MySQL LIMIT 手册 http dev mysql com doc refman 5

随机推荐

  • Qt源码分析之信号和槽机制

    原文在这里 http blog csdn net oowgsoo article details 1529411 Qt的信号和槽机制是Qt的一大特点 实际上这是和MFC中的消息映射机制相似的东西 要完成的事情也差不多 就是发送一个消息然后让
  • 电脑系统更新完后,计算机管理服务中找不到mysql的服务

    问题场景 电脑系统更新完 重启电脑 发现在电脑 计算机管理服务中找不到mysql的服务 问题描述 重启后 计算机管理如图 解决方案 使用Windows Powershell 管理员模式 进入到mysql安装目录bin 然后执行 mysqld
  • Unity游戏开发-Assetbundle打包

    本篇主要是分享unity Assetbundle的打包处理 目录 打包接口 整体设计 打包AssetBundle 压缩资源到StreamingAssets 输出资源清单文件 清单文件结构 AssetFile AssetVersion 处理
  • Codeforces-1454E Number of Simple Paths(基环树-思维)

    题目大意 给你n个点 n条边 求图中简单路径的个数 题目思路 n个点n条边 那么图中一定有一个环 拿这个图来讲 我们将两点间的关系分为4种 1 两点都在环上 简单路径的个数为2 例如2与5 2 一个点在环上一个点不在环上 简单路径个数为2
  • 魔兽世界(WOW)诺莫瑞根卡片任务链ASCII码解码(python)

    运行环境 python 3 9 翻译结果 A机器上的编码 Tell your friends to play WoW 白色卡片上的编码 Thrall and Jaina sitting in a tree K I S S I N G A机器
  • 使用openssl中函数MD5_Init、MD5_Update、MD5_Final出现LNK2019 unresolved externalsymbol错误解决方法

    添加对应的静态链接库 以vs2013为例 PROJECT gt Properties gt Linker gt Additional Dependencies 添加libeay32 lib 先确认库的搜索路径中libeay32 lib
  • LVGL8.1笔记3--运行demo(2022-0611)

    LVGL8 1笔记3 运行demo 2022 0611 文章目录 LVGL8 1笔记3 运行demo 2022 0611 toc 前言 一 移植前准备 二 lv demo简介 三 开始移植demo 1 首先下载demo 如果用的不是LVGL
  • sdc基本概念-set_clock_groups

    set clock groups 指定clock groups 之间的关系是mutually exclusive or asynchronous 这些clock 间的timing path 是不做分析的 status set clock g
  • cass等距离等分线段的命令键_cad等分快捷键(cad等分线段快捷键命令)

    CAD中等分线段分为两种 定数等分和定距等分 1 定数等分 命令是DIVIDE 快捷键是DIV 2 定距等分 命令是MEASURE 快捷键是ME 以线段定数等分为例 1 命令为DIV 以CAD2010操作为例 1 打开CAD的软件 如图所示
  • LeetCode 99. 恢复二叉搜索树

    题目链接 https leetcode cn com problems recover binary search tree 思路如下 如下图所示 正常情况下中序遍历的结果是升序的 11 17 18 22 28 37 42 44 62 如下
  • Hive设置本地模式

    set hive exec mode local auto true
  • 使用EasyPOI导出Excel表格(含多sheet导出以及一对多导出)

    一 前言 官方Api文档地址 http doc wupaas com docs easypoi easypoi 1c0u4mo8p4ro8 常用注解介绍 注解介绍 easypoi起因就是Excel的导入导出 最初的模板是实体和Excel的对
  • SqlServer 关于 datetime 的更新引发的思考

    今天在测试更新 SqlServer 表的 datetime 字段时 突然发现并没有更新成功 同时也没有报错 感觉十分诧异 因此仔细排查了一下 终于发现是和字段本身的精度有关 现象 假设我们现在有一张 SqlServer 表 basic in
  • LC-3 机器语言 指令集

    目录 碎碎念念 LC 3指令 运算类指令 ADD addition AND Bit wise logical AND NOT Bit wise complement 数据搬移类指令 LD load ST store LDI load ind
  • FPN网络结构+源码讲解

    YOLOF前传 特征金字塔 FPN 前言 这几天在读CVPR2021的中稿论文YOLOF You Only Look One level Feature 文章回顾了单阶段的特征金字塔网络 FPN 指出FPN的成功的原因在于它对目标检测中优化
  • c++ map用法 入门必看 超详细

    1 map的作用 可以实现各种类型的映射 可以用数组来类比 都是由下标和值组成 但数组用法很局限 下标不能是负数 而且开数组需要消耗太多的内存 开到10 7就内存超限了 因此 很多时候都用高级的map类或vector类来代替数组 其里面的成
  • “对象创建”模式——抽象工厂

    动机 在软件系统中 经常面临着 一系列相互依赖的对象 的创建工作 同时由于需求的变化 往往存在更多系列对象的创建对象 如何应对这种变化 如何绕过常规的对象创建方法 new 提供一种 封装机制 来避免客户程序和这种 多系列具体对象创建工作 的
  • 互联网编程之基于 TCP 的单线程文件收发程序(CS架构)

    目录 需求 服务端实现 客户端实现 测试 需求 可试着根据java编程课所学到的java socket编程技术 尝试编写一个基于 TCP 的单线程文件收发程序 需满足 服务端程序预先定义好需要发送的文件并等待客户端的连接 客户端连接成功后
  • 非极大值抑制(non-maximum suppression)的理解

    最近在学习RCNN时看到了非极大值抑制 一开始有点不明白 在网上学习了之后记录一下 非极大值抑制就是一个寻找局部最大值的过程 在进行目标检测时一般会采取窗口滑动的方式 在图像上生成很多的候选框 然后把这些候选框进行特征提取后送入分类器 一般
  • MySQL执行update时的[ERROR 1093]处理方法

    版权声明 声明 本文档可以转载 须署名原作者 作者 无为 qq 490073687 周祥兴 zhou xiangxing210 163 com gt update TEST NOIDX set CREATETIME now where ID