文库

PG outputdata函数

PG outputdata函数

九月 03, 2016 阅读 22 字数 1271 评论 0 喜欢 0

根据表名,打印出该表的insert语句。

 

函数跟ms sql2005 里的存储过程用法类似。

 

直接在需要的库里执行该函数。

 

CREATE OR REPLACE FUNCTION outputdata(

    tablename text,

    sqlstr text)

  RETURNS SETOF record AS

$BODY$

 

declare insertstr text;

declare v_rec record;

declare v_vas record;

declare v_val text;

begin

 

insertstr :='''insert into ' || tablename || '(';

v_val:='';

 

for v_rec in execute 'select attname from pg_class c,pg_attribute attr where relname = ''' || tablename || '''and c.oid = attr.attrelid and atttypid > 0 and attnum>0' loop

insertstr:= insertstr || v_rec.attname || ',' ;

v_val:= v_val || 'case when l_isnull_str('||v_rec.attname||'::text) = ''f'' then ''''''''||' || v_rec.attname || '||'''''''' else ''null'' end || '','' ||';

end loop;

 

insertstr := substring(insertstr,0,length(insertstr))||')''';

 

v_val := ''' values(''||' || substring(v_val,1,length(v_val)-14) || ' end ||'');''';

 

for v_vas in execute 'select '||insertstr || ' || ' || v_val || ' as sql from ' || tablename || ' ' || sqlstr  loop

raise info '%', v_vas.sql;

end loop;

 

 

end;

$BODY$

  LANGUAGE plpgsql VOLATILE

  COST 100

  ROWS 1000;

ALTER FUNCTION outputdata(text, text)

  OWNER TO postgres;

 

使用方法:select outputdata(表名,查询条件),查询条件为空时,引号内容为空。

执行后会在控制台消息里打印出来。

例:select outputdata('leaptable','');

Select outputdata('leaptable','where id=''aaa''');










    相 关 文 章 返回顶部 上一篇

  • PG递归查询

    distinct xx和count(distinct xx)的递归优化方法 当数据量大,count(distinct xx)结果会很慢,distinct结果数量较少时,可以使用递归方法优化。distinct结果多不适用。

    PG递归查询
  • postgresql增加连接数

    postgresql修改连接数,可以在postgres.conf里面进行修改max_conection,但是当max_conection过大时,就会报错。此时我把数据库连接数设置到2000,重启后错误信息可以在server.log里看到。这时需要修改系统内核配置。

    postgresql增加连接数
  • PG shared_buffer性能检测

    很多资料说这个缓存命中率不可低于99%,如果低于了99%,表明,cache效率太低了,需要增大shared buffer。总之了,当你的shared buffer命中率太低,比如60%,基本就需要检查下你配置的shared buffers是否太小了,导致你cache利用率如此之低。

    PG shared_buffer性能检测
  • PG车辆VIN码校验

    函数使用方法: select lcipcheckcarvin(‘VIN码’); 直接执行下面脚本,创建函数

    PG车辆VIN码校验

粤ICP备18103437号-1