我想向一个已经包含数十亿行的表格中添加一个新列,这些新列是从现有列派生而来。
例如,
我正在尝试以下方式完成这个任务 - 添加新列
从表中逐行阅读并填写新列的值。
数据库中没有主键,因此无法引用单个行。要逐行读取行,我必须执行select *,这会产生巨大的结果集(考虑到数十亿条记录)。
有更好的方法吗?
例如,
new_col1 = old_col1 + old_col2
new_col2 = old_col1 / old_col2
我正在尝试以下方式完成这个任务 - 添加新列
ALTER TABLE table_name
ADD ( column_1 column-definition,
column_2 column-definition,
...
column_n column_definition )
从表中逐行阅读并填写新列的值。
数据库中没有主键,因此无法引用单个行。要逐行读取行,我必须执行select *,这会产生巨大的结果集(考虑到数十亿条记录)。
有更好的方法吗?
UPDATE
分成小块进行切割...为什么不能执行单个的UPDATE
呢? - pascal