问题描述
嗨,团队,
我在面试中经历了一个问题,但找不到答案。如果你能帮我。
假设有一个表员工有数百万条记录,我们希望将列大小address_col(10) 增加到address_col(20)。如果下面的查询在4-5小时内运行并且仍在运行,我该如何备份employee表。
创建员工 _ 备份
作为
从员工中选择 *
有什么办法可以备份perticuler专栏。或者建议采用什么方法。
我在面试中经历了一个问题,但找不到答案。如果你能帮我。
假设有一个表员工有数百万条记录,我们希望将列大小address_col(10) 增加到address_col(20)。如果下面的查询在4-5小时内运行并且仍在运行,我该如何备份employee表。
创建员工 _ 备份
作为
从员工中选择 *
有什么办法可以备份perticuler专栏。或者建议采用什么方法。
专家解答
“比方说,有一个拥有数百万条记录的表员工,我们希望将列大小address_col(10) 增加到address_col(20)”
执行此命令将 * 不需要时间 *,因为不需要更改数据。
但是不管怎样。如果您需要备份列,您可以复制主键列和所需列的副本,例如
创建表备份 _ 我的 _ 表
作为选择pk_col1,pk_col2,my_column
从我的表;
您需要主键列,以便您可以根据需要将数据映射回原始表。
执行此命令将 * 不需要时间 *,因为不需要更改数据。
SQL> create table t ( address varchar2(10)); Table created. SQL> insert /*+ APPEND */ into t 2 select rownum 3 from ( select 1 from dual connect by level <= 1000 ), 4 ( select 1 from dual connect by level <= 10000 ) 5 / 10000000 rows created. SQL> set timing on SQL> alter table t modify address varchar2(50); Table altered. Elapsed: 00:00:00.05
但是不管怎样。如果您需要备份列,您可以复制主键列和所需列的副本,例如
创建表备份 _ 我的 _ 表
作为选择pk_col1,pk_col2,my_column
从我的表;
您需要主键列,以便您可以根据需要将数据映射回原始表。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




