zoukankan      html  css  js  c++  java
  • plpgsql: 动态插入数据 1

    --目标:1、建立一个函数实现 输入一个表名(tableName)tableName,一个JSON串{feildName1:feildVale1,feildName2:feildVale2}
    
    --          然后直接插入到表(tableName)中。
    
    --   2、建立一个函数实现 输入一个表名(tableName)tableName,一个字段数组feildName text[],一个字段值数组:feildValue text[]
    
    --          然后直接插入到表(tableName)中。
    
    --==============================================
    
    --目前,1还没有实现,待实验成功再行补上!
    
    --==============================================
    
    --2  的实现方法:
    
    --获取表中id最大值加1返回
    create or replace function f_getNewID(myTableName text,myFeildName text) returns integer as $$
    declare
        mysql text;
        myID integer;
    begin
        mysql:='select max('
            || quote_ident(myFeildName) 
            ||') from '
            || quote_ident(myTableName);
        execute mysql into myID; 
        --using myTableName,myFeildName;
        
        if myID is null or myID=0 then return 1;
        else return myID+1;
          end if;
    end;
    $$ language plpgsql;
    --------------------------------------------------------
    --创建表
     create table test(id integer,name text,code text);
    ---------------------------------------------------------
    --创建一个函数
    create or replace function f_insert_test(name text[])
    returns text as $$
    declare
        mysql text;
        myid integer;
    begin
        myid:=f_getnewid('test','id');
        mysql:='insert into test values(' ||myid||','''
            ||array_to_string(name,''',''')
            ||''')';
        execute mysql;
        return 0; --根据具体情况返回有用值
    end;
    $$ language plpgsql;
    
    

    看起来没有太大用处,因为后面的字段必须为一个类型。

    但也是我花了两天的时间搞明白的一件事,

    包括对 ARRAY,JSON的学习

    -------------------------------------------------

    如果谁能给个 数据类型也变化的 函数那就更好了!

    当然还有第一个问题还没有解决!

    加油!

  • 相关阅读:
    红蓝对抗之Windows内网渗透(转)
    缓存注解@Cacheable、@CacheEvict、@CachePut使用及注解失效时间
    队列数组的实现
    栈结构数组的实现
    【别贪心】Website
    【别贪心】keep-web
    vue中使用$.once(‘hook:beforeDestory’,() => {})清理定时器
    【别贪心】static_vue_ele_blog
    【别贪心】vue-news
    【别贪心】cartDemo
  • 原文地址:https://www.cnblogs.com/ssqhan/p/7398930.html
Copyright © 2011-2022 走看看