zoukankan      html  css  js  c++  java
  • 使用postgrasql存储过程循环插入数据

    今天在一个项目中,需要创建大量的数据,由于刚好改项目使用的数据库是postgrasql。之前对其他数据库倒是有了解,但是postgrasql的了解却是不多。知道有存储过程的这一个概念,在网上查找资料,在postgrasql中没有发现有CREATE OR REPLACE procedure的语法。走了好多弯路才知道,原来只能用FUNCTION 来实现,在使用过程中还发现还有好多语法和其他数据库不同,比方说调用只能用select语句实现。看来,接下来需要对postgrasql语法,进行研究研究了>_<'''。

    以下是本次使用的脚本,写此随笔,以供他人参考。

    CREATE OR REPLACE FUNCTION addvalue(recordnum bigint, int_day bigint)
    RETURNS void AS
    $BODY$
    declare i integer;
    declare j integer;
    BEGIN
    i:=1;
    j:=1;
    for j in 1..int_day loop
    for i in 1..recordNum loop
    insert into acc_transaction(id,unique_key,log_id,create_time,event_time,pin,area_name,card_no,dev_id,dev_sn,dev_alias,verify_mode_no,verify_mode_name,event_no,event_name,event_point_type,event_point_id,event_point_name,reader_state,reader_name)
    values(nextval('seq_acc_transaction'),CONCAT(CONCAT(CONCAT('70000000002',to_char(j,'FM999999')),'_'),to_char(i,'FM999999')),i,to_timestamp(CONCAT(CONCAT('2015-07-',to_char(j,'FM999')),' 02:01:33'),'YYYY-MM-DD HH:MI:SS'),to_timestamp(CONCAT(CONCAT('2015-07-',to_char(j,'FM999')),' 02:01:33'),'YYYY-MM-DD HH:MI:SS'),'1044','Area Name','395747',3,CONCAT('70000000002',to_char(j,'FM999999')),'192.168.4.12',6,'Card or Fingerprint',30,'Password Error',0,43,'192.168.4.12-1',1,'192.168.4.12-1');
    end loop;
    end loop;
    end
    $BODY$
    LANGUAGE plpgsql VOLATILE

  • 相关阅读:
    聊天软件项目UDP升级版
    聊天软件项目TCP升级版
    JVM内存管理机制
    Java for循环的几种用法详解
    HashMap解决hash冲突的方法
    Hadoop NameNode 高可用 (High Availability) 实现解析
    Hadoop2.0NameNode HA和Federation实践
    Hadoop2.0中单点故障解决方案总结---老董
    HadoopHA简述
    数据库部分面试题
  • 原文地址:https://www.cnblogs.com/zktesterhome/p/5048776.html
Copyright © 2011-2022 走看看