--目标: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的学习
-------------------------------------------------
如果谁能给个 数据类型也变化的 函数那就更好了!
当然还有第一个问题还没有解决!
加油!