Oracle数据库如何把表A的数据备份到相同结构的表B

本文详细介绍了如何使用SQL语句将指定数据从表A迁移到表B,并随后从表A中删除这些数据的方法。提供了三种不同的解决方案,包括直接迁移、创建新表并迁移以及利用空查询创建结构相同的新表再进行数据迁移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天接到一个任务,把表A中的字段name为“xx”的数据备份,然后删除掉表A的这些数据。已成功完成任务,作此纪录,用以备忘。

一、方案与实现
  1. 假设存在与表A结构相同的表B。
  • 方案:首先,查询表A中的字段name为“xx”的数据插入到表B,再把表A中的字段name为“xx”的数据删除。
  • 实现:sql如下所示:
INSERT INTO B  SELECT * FROM	A WHERE	name='xx';
DELETE FROM A WHERE	name='xx';
  1. 假设不存在与表A结构相同的表B。这里有两种解决方案。
  • 方案1:首先,查询表A中的字段name为“xx”的数据,把表A的结构和数据直接用来创建表B,再把表A中的字段name为“xx”的数据删除。
  • 实现1:sql如下所示:
CREATE TABLE B AS SELECT * FROM	A WHERE	name='xx';
DELETE FROM A WHERE	name='xx';
  • 方案2:首先,先创建和表A一样结构的表B,再执行上面1的方案,把查询表A中的字段name为“xx”的数据插入到表B,最后把表A中的字段name为“xx”的数据删除。
  • 实现2:sql如下所示:第一条脚本中的条件1=2的目的是:让查询表A的数据为空,该条脚本的作用相当于copy表A的结构。
CREATE TABLE B AS SELECT * FROM	A WHERE	1=2; 
SELECT INTO B AS SELECT * FROM	A WHERE	name='xx';
DELETE FROM A WHERE	name='xx';

记录到此结束,欢迎大家评论交流。如记录有误,请评论指出,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值