如何在BQ表中批量复制虚拟数据并追加至原表?
BigQuery 批量复制行并追加到原表的SQL实现
你可以利用BigQuery的GENERATE_ARRAY和UNNEST函数实现每行批量复制,再通过INSERT INTO追加到原表。
1. 先验证复制结果(可选)
先运行这个查询确认每行是否被复制10次:
SELECT * FROM `your-project.your-dataset.your-table`, UNNEST(GENERATE_ARRAY(1, 10)) AS repeat_counter
如果不需要额外生成的repeat_counter列,用下面的语句:
SELECT * EXCEPT(repeat_counter) FROM `your-project.your-dataset.your-table`, UNNEST(GENERATE_ARRAY(1, 10)) AS repeat_counter
2. 执行追加操作
确认结果正确后,运行以下语句将复制的数据追加到原表:
INSERT INTO `your-project.your-dataset.your-table` SELECT * EXCEPT(repeat_counter) FROM `your-project.your-dataset.your-table`, UNNEST(GENERATE_ARRAY(1, 10)) AS repeat_counter
关键说明
- 替换
your-project.your-dataset.your-table为你的实际表路径 - 修改
GENERATE_ARRAY(1, 10)的第二个参数可以调整复制次数,比如改成50就会每行复制50次 - 如果原表包含唯一约束或自增ID列,需要根据实际情况处理(比如排除ID列重新生成,或者确保ID不会冲突)
内容的提问来源于stack exchange,提问作者ppp147
相关产品推荐
相关产品推荐

