当前位置: 首页 > 面试题库 >

MySQL返回子句等效

冷越泽
2023-03-14
问题内容

我是MySql的新手,所以请保持谦虚。

RETURNINGOracle 中的子句或Inserted'/'DeletedMySQL中的SQL Server中的表是否等效?我想做的是以下几点:

  • 从表A删除一组行
  • 将已删除的行集插入表B。

请帮忙!

谢谢


问题答案:

不幸的是,您不能在 一个查询中 同时进行插入和删除 操作 ,但是如果您使用的是事务存储引擎(例如InnoDB),则可以在一个 事务中
完成所有操作。此外,RETURNING它受Oracle和PostgreSQL支持,但不受MySQL支持,因此您需要编写单独的deleteinsert语句。

但是,使用事务将确保仅成功复制的数据将从tableA中删除。考虑以下:

begin transaction;
insert into tableB select * from tableA where 'your_condition_here';
delete from tableA where 'your_condition_here';
commit;


 类似资料:
  • 问题内容: 我一直在大量阅读有关SQL SERVER LIMIT子句的替代方法。太令人沮丧了,他们仍然拒绝适应它。无论如何,我真的没办法解决这个问题。我要转换的查询是这样的… 任何帮助将不胜感激,谢谢。 问题答案: 在SQL Server 2012中,支持ANSI标准/ 语法。我在博客上发表了这篇文章,这是官方文档(这是的扩展)。为SQL Server 2012转换的语法为: 在此之前,您需要使用

  • 本文向大家介绍MySQL LIMIT子句是否等效于SQL SERVER?,包括了MySQL LIMIT子句是否等效于SQL SERVER?的使用技巧和注意事项,需要的朋友参考一下 首先,我们需要创建一个表来了解limit子句(对于SQL Server来说是我们想要的)。我们将在CREATE命令的帮助下创建一个表。 建立表格 之后,让我们将记录插入表中- 在SELECT语句的帮助下显示所有记录- 以

  • 在截断表的函数中,我可以使用 我正在使用参数化的准备语句来选择、插入和更新,没有任何问题。

  • 问题内容: 我正在执行此查询: 我正在尝试使其返回如下内容: 但是,我得到了错误: #1242-子查询返回的行数超过1。 我尝试将语句放置在子查询中,但是收到无效的语法错误。 问题答案: 您可以使用简单的分组方式在没有子查询的情况下进行尝试: 使用GROUP BY时,未分组的任何列都必须具有聚合子句(fe SUM或COUNT。)因此,在这种情况下,您必须对县名称,precienct.id和prec

  • 当我用空IN子句编写查询时,它引发了一个错误。例如,在()中选择id所在的城市 如果我在in子句中编写任何返回空resultset的子查询,那么它就不会引发错误。