您的位置:首页 > 数据库 > Oracle

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

2020-02-02 13:34 836 查看

今天接到一个任务,把表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';

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

  • 点赞
  • 收藏
  • 分享
  • 文章举报
CWanss 发布了3 篇原创文章 · 获赞 2 · 访问量 227 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: