sql批量新增百万测试数据
时间: 2024-10-22 15:04:52 浏览: 17
SQLServer批量更新两个关联表数据的方法
5星 · 资源好评率100%
在SQL中,批量插入大量测试数据通常会涉及到性能优化,因为一次性插入大量记录可能会对数据库服务器造成压力。以下是一个简单的示例,假设我们有一个名为`test_table`的表,需要插入百万条测试数据:
```sql
CREATE TABLE test_table (id INT PRIMARY KEY, data VARCHAR(100));
-- 这里假设你有一个包含百万行的数据文件,每行对应一条记录
WITH temp_table AS (
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS id, -- 生成序列ID
REPLACE('data_value_' || CAST(id AS VARCHAR), '-', '_') AS data -- 生成模拟数据
FROM generate_series(1, 1000000) -- 替换实际的数字,这里用1到1000000作为百万数据的例子
)
INSERT INTO test_table (id, data)
SELECT id, data
FROM temp_table;
```
这个例子中,我们首先创建了一个临时表`temp_table`,通过ROW_NUMBER函数生成一个从1开始递增的ID,然后生成模拟数据。最后,将临时表的内容逐行插入到目标表。
然而,对于非常大的数据量,直接一次性插入可能会导致内存溢出。为了避免这种情况,你可以考虑分批处理,例如使用BATCH INSERT或者存储过程,每次插入几千到几万行。
阅读全文