postgre循环插入模拟数据

本文介绍了一个使用PL/pgSQL编写的函数,该函数能够向数据库表s_config_log中批量插入指定数量的记录。通过一个循环结构,此函数展示了如何在PostgreSQL中执行批量数据插入操作。
create or replace function batchInsert(endNumber bigint) returns 
 void AS $$
 declare ii integer;
   begin
   II:=1;
   FOR ii IN 1..endNumber LOOP
     
    insert 
    into
        s_config_log
        (sub_sys_code, sub_sys_name, module_type_code, module_type_name,  log_content, create_time, user_id, username, login_addr) 
    values
        (1048576,'基础应用', 1024, '组织配置', '删除控制中心:XXXXXXXXXXXXXXXXXXXX', '2015-01-28 17:24:19', 4, 'admin', '10.10.10.10');
   end loop;
   end;
 $$ LANGUAGE plpgsql;
 
select batchInsert(1000);

### PostgreSQL 插入数据语法 在 PostgreSQL 中,`INSERT INTO` 是用于向表中插入新记录的主要命令。以下是该语法的标准形式: #### 单条记录插入 当需要插入单条记录时,可以使用以下语法: ```sql INSERT INTO table_name (column1, column2, ..., columnN) VALUES (value1, value2, ..., valueN); ``` 如果省略列名,则必须提供与表定义完全匹配的所有字段值[^2]。 #### 多条记录插入 为了提高效率并减少网络开销,可以通过一条 `INSERT INTO` 语句插入多条记录: ```sql INSERT INTO table_name (column1, column2, ..., columnN) VALUES (value1_1, value1_2, ..., value1_N), (value2_1, value2_2, ..., value2_N), ...; ``` 例如,在名为 `person` 的表中插入两条记录,SQL 语句可写为: ```sql INSERT INTO person (id, name, age, profession) VALUES (8, 'Harry', 21, 'magician'), (9, 'Harriet', 19, 'pianist'); ``` 如果不指定列名,则需确保提供的值顺序和数量与表结构一致[^2]: ```sql INSERT INTO person VALUES (8, 'Harry', 21, 'magician'), (9, 'Harriet', 19, 'pianist'); ``` #### 使用子查询插入 还可以通过子查询动态生成要插入数据: ```sql INSERT INTO target_table (column1, column2, ..., columnN) SELECT source_column1, source_column2, ..., source_columnN FROM source_table WHERE condition; ``` 这种情况下,目标表中的每一行都由源表满足条件的结果填充[^4]。 --- ### 性能优化建议 对于大规模批量插入操作,推荐采用以下方法提升性能: - **禁用索引**:临时移除非必要索引以加快插入速度。 - **关闭自动提交模式**:将多个插入操作包裹在一个显式的事务块内执行。 - **利用 COPY 命令**:相比逐条 `INSERT`,COPY 提供更高效的文件导入方式[^3]。 示例代码展示如何结合事务完成多次插入: ```sql BEGIN; INSERT INTO person (id, name, age, profession) VALUES (10, 'Alice', 25, 'engineer'); INSERT INTO person (id, name, age, profession) VALUES (11, 'Bob', 30, 'scientist'); COMMIT; ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值