首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新一个表中几百万行的列

更新一个表中几百万行的列
EN

Stack Overflow用户
提问于 2016-01-26 21:52:41
回答 2查看 78关注 0票数 0

我需要从一个包含几百万行的表中更新两列。做这件事最有效的方法是什么?

它将是这样的:

代码语言:javascript
复制
update my_table set column_one = to_date('11/11/11', 'RR/MM/DD'),
                    column_two = to_date('11/11/11', 'RR/MM/DD');

或者这样:

代码语言:javascript
复制
update my_table set column_one = to_date('11/11/11', 'RR/MM/DD');
update my_table set column_two = to_date('11/11/11', 'RR/MM/DD');

还是有更好的方法?

EN

回答 2

Stack Overflow用户

发布于 2016-01-26 22:00:07

更新具有百万行的表的最有效方法是根本不执行update操作,而是使用更新值创建一个新表。

  1. 使用更新的列创建新表,同时删除所有同义词、授予、约束和索引。
  2. 删除旧表。
  3. 将新表重命名为旧的授予、同义词、约束和索引。
票数 2
EN

Stack Overflow用户

发布于 2016-01-26 23:00:28

如果您不想创建新表,只需将其分成块即可。

代码语言:javascript
复制
update my_table set column_one = to_date('11/11/11', 'RR/MM/DD'),
                    column_two = to_date('11/11/11', 'RR/MM/DD')
where rownum < 1000 
AND column_one <> to_date('11/11/11', 'RR/MM/DD')
AND column_two <> to_date('11/11/11', 'RR/MM/DD');

@Incognito的答案可能更好。如果你的意思是“高效”是花在编写代码上的时间更少,那就试试这种方法。

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

https://stackoverflow.com/questions/35015404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档