Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >尝试在MySQL中执行删除时出现错误1093

尝试在MySQL中执行删除时出现错误1093
EN

Stack Overflow用户
提问于 2018-03-23 15:36:26
回答 2查看 65关注 0票数 0

对于这个查询,请帮我一点忙。当尝试在MySQL中执行delete时,它返回一个错误:"MySQL错误1093 -无法在FROM子句中为更新指定目标表“。除此之外,select语句可以很好地工作。脚本如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DELETE
  FROM redcap_data
WHERE record IN (SELECT DISTINCT
  redcap_data.record,
  redcap_data.field_name,
  redcap_data.value
FROM redcap_metadata
  INNER JOIN redcap_data
    ON redcap_metadata.project_id = redcap_data.project_id
  INNER JOIN redcap_events_metadata
    ON redcap_data.event_id = redcap_events_metadata.event_id
  INNER JOIN redcap_events_arms
    ON redcap_events_metadata.arm_id = redcap_events_arms.arm_id
WHERE (redcap_data.project_id = '50'
AND redcap_events_arms.arm_num = '6'
AND redcap_data.record IN ('record_ids go here')
))
EN

回答 2

Stack Overflow用户

发布于 2018-03-23 15:50:01

尝试对正在使用as IN子句而不是IN子句的subselect使用内连接

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    DELETE r.*
      FROM redcap_data r
    INNER JOIN  (
      SELECT DISTINCT
      redcap_data.record,
      redcap_data.field_name,
      redcap_data.value
    FROM redcap_metadata
      INNER JOIN redcap_data
        ON redcap_metadata.project_id = redcap_data.project_id
      INNER JOIN redcap_events_metadata
        ON redcap_data.event_id = redcap_events_metadata.event_id
      INNER JOIN redcap_events_arms
        ON redcap_events_metadata.arm_id = redcap_events_arms.arm_id
    WHERE (redcap_data.project_id = '50'
    AND redcap_events_arms.arm_num = '6'
    AND redcap_data.record IN ('record_ids go here')
    )) t ON r.record = t.record
票数 1
EN

Stack Overflow用户

发布于 2018-03-23 15:53:53

这是MySQL中记录在案的限制。

一种解决方法是使用内联视图(派生表),并在联接操作中引用该视图。

将其写入为SELECT first

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELECT t.*
  FROM target_table t
  JOIN ( SELECT q.id
           FROM target_table q 
           JOIN ... r
             ON ...
          WHERE ... 
          GROUP BY ... 
         HAVING ...
       ) s
    ON s.id = t.id 

然后我们可以将其转换为DELETE语句。根据我的经验,内联视图在外部查询中提供了足够的target_table分隔,因此不会引发MySQL错误。

在外部查询运行时,物化派生表s的查询已经执行。MySQL执行的操作与此类似(不完全是这样,但这说明了模式,我们如何看待派生表……

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE TEMPORARY TABLE _s_ ... ;
INSERT INTO _s_ (...) SELECT ... FROM target_table q ... ;

DELETE t.*
  FROM target_table t
  JOIN _s_ 
    ON ... 
;

DROP TEMPORARY TABLE _s_ ... ;

在DELETE语句运行时,在前面的SELECT语句中引用target_table并不重要。实现临时表%s的工作已经完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49453366

复制
相关文章
MySQL在删除表时I/O错误原因分析
问题现象 最近使用sysbench测试MySQL,由于测试时间较长,写了一个脚本按prepare->run->cleanup的顺序在后台跑着。跑完后察看日志发现一个问题,MySQL服务的错误日志中出现多条类似以下信息的报错: [ERROR] InnoDB: Trying to do I/O to a tablespace which does not exist. I/O type: read, page: [page id: space=32, page number=57890], I/O length
腾讯数据库技术
2018/07/19
1.9K0
navicat连接mysql时出现2003(10060)错误
参考http://jingyan.baidu.com/article/95c9d20dac9040ec4f75617a.html,发现是防火墙未关闭;
全栈程序员站长
2021/06/21
8.1K1
navicat连接mysql时出现2003(10060)错误
Confluence 6 尝试从 XML 备份中恢复时解决错误
错误可能是因为数据库突然不可访问而产生。也有可能是你备份文件有问题,你需要找到你 XML 备份文件中违反数据库规定的记录修改这个记录后再创建一个新的 XML 备份:
HoneyMoose
2019/01/31
9280
使用java(jdbc)向mysql中添加数据时出现“unknown column……”错误
这里的date变量其实我是用SimpleDate类设置的是一个字符串类型的数据了,根据上面的叙述,得知这个“+date+”还是需要使用单引号引起来的,如下:
roobtyan
2019/02/21
5.2K0
执行Hive查询时出现OOM
使用的是缺省参数每个task分配200M内存「mapred.child.java.opts」
WHYBIGDATA
2023/01/31
9480
执行Hive查询时出现OOM
在eclipse中使用Tomcat8.5时,出现了如下错误:
在建立Tomcat服务时,eclipse会自动生成一个Servers的项目. 在这个项目中,找到你部署项目的服务文件夹. 在这个文件夹下有一个"server.xml"文件,打开这个文件,删除里面对应项目的Context节点即可。
兮动人
2021/06/11
3.7K0
在eclipse中使用Tomcat8.5时,出现了如下错误:
执行游戏时出现0xc000007b错误的解决方法
出现这个错误,可能是硬件的问题,也可能是软件的问题。可是,因为硬件引起该问题的概率非常小,而且除了更换硬件之外没有更好的解决方法,因此本文将具体介绍怎样通过软件解决此问题,这也是大家最关心的。
全栈程序员站长
2022/07/13
1.2K0
执行游戏时出现0xc000007b错误的解决方法
Typecho评论时可能出现的错误
根据URL得知应该是在发评论的时候出现的错误。很奇怪,因为很久之前这位博友jiuki's blog也给我反馈过一次。说明这问题不是偶然出现的,所以必须要解决才行。
Melody132
2020/03/13
1.5K0
pycharm执行图像操作时出现Qt platform错误,发现在重装系统后,
` This application failed to start because it could not find or load the Qt platform plugin "xcb" in "".
水球喵子
2018/07/27
1.7K0
在Linux系统中安装LAMP出现的错误总结
总结一下用源代码安装LAMP环境中遇到常见的错误,从错误3开始是因为安装php后面带参数,导到没有找到开发包例如:./configure --with-gd  --with-libjpeg会出现如下错误。
星哥玩云
2022/06/28
3.2K0
在Linux系统中安装LAMP出现的错误总结
Mysql - 删除表时出现: Cannot delete or update a parent row: a foreign key constraint fails
ERROR 1217 (23000): Cannot delete or update a parent row: a foreign key constraint fails
小菠萝测试笔记
2020/06/09
2K0
Eclipse保存文件时出现字符编码错误
eclipse 由于开源所以支持了比较杂的编码方式,而这些一个工程导入时添加了不少的外来程序,由于不是同一工程一次编码带来了其中含有 GBK 或 UTF8 或 UTF16 或 ASCII 等文件编译时就会出现错误警告。
黑泽君
2018/10/11
3.4K0
在实验 vue3.2中 的<script setup>时,关于...toRefs的应用尝试
在上篇文章里# vue3的setup还能这么用?介绍了一下script setup的基本使用方式,而后这两天在实际用它的过程中,发现在script setup中...toRefs很有意思,今天这里就给大家分享分享,如哪里有误欢迎指出,大佬勿喷
inline705
2021/12/09
4.7K1
在实验 vue3.2中 的<script setup>时,关于...toRefs的应用尝试
Sql语句在Mysql中的执行流程
查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。
Qwe7
2022/02/11
4.7K0
spark 在yarn执行job时一直抱0.0.0.0:8030错误
近日新写完的spark任务放到yarn上面执行时,在yarn的slave节点中一直看到报错日志:连接不到0.0.0.0:8030 。 1 The logs are as below: 2 2014-08-11 20:10:59,795 INFO [main] org.apache.hadoop.yarn.client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8030 3 2014-08-11 20:11:01,838 INFO [main] or
随机来个数
2018/04/16
2.3K0
删除lvm时出现"Logical volume contains a filesystem in use"
k8s环境中需要重新创建lvm:/dev/mapper/test-vg-test-storage,该lvm挂载在/data/prometheus下面,在删除出现"Logical volume contains a filesystem in use"的错误,表明该lvm被某个进程占用,但直接使用该lvm的容器已经被清理,使用lvchange -an /dev/mapper/test-vg-test-storage去激活该lvm时也会出现上述错误。
charlieroro
2020/03/24
7.6K0
windows下出现mysql启动出现 ‘发生系统错误’ 1067
今天在windows下安装mysql,在启动时出现了发生‘系统错误 1067’的错误。
Java架构师历程
2018/09/26
4K0
【错误解决】MySQL出现Can't connect to MySQL server on 'localhost' (10060)错误
今天连接数据库遇到一个问题, 错误提示: Can’t connect to MySQL server on ‘localhost’ (10060)
谙忆
2021/01/21
1.9K0
【错误解决】MySQL出现Can't connect to MySQL server on 'localhost' (10060)错误
关于在vs2010中编译Qt项目时出现“无法解析的外部命令”的错误
用CMake将Qt、VTK和ITK整合后,打开解决方案后添加新类时运行会出现“n个无法解析的外部命令”的错误。
jianghaibobo
2019/09/11
6.5K0
关于在vs2010中编译Qt项目时出现“无法解析的外部命令”的错误
CAD 2020 安装时出现“安装错误1603:安装过程中的致命错误”
错误1603是Microsoft Windows Installer(MSI)生成的一般错误。此错误倾向于与系统相关,而不是与特定软件相关联。以下是1603错误的常见示例:
知识兔下载
2023/01/31
9.3K0

相似问题

尝试删除行时MySQL错误代码1093

230

Mysql错误1093

24

尝试在Angular中执行删除操作时出现错误

122

MySQL更新查询中出现错误(#1093)

10

MySQL错误1093如何从这里删除

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文