046.PGSQL-format字符格式化实现批量给表加索引

format格式化

格式说明符由 % 字符引进,格式为

%[ position ] type
组件的字段有:
position (optional)
n$ 格式的字符串,这里的n是要打印的参数的索引。索引为1表示在formatstr之后的第一个参数。如果省略了position,默认使用序列中的下一个参数。
type (required)
格式转换的类型用来产生格式说明符的输出。支持下列的类型:
s 格式参数值为简单的字符串。空值作为空字符串对待。
I 将参数值作为SQL标识符对待,如果需要,双写它。值为空是错误的。
L 引用参数值作为SQL文字。空值用字符串 NULL 显示,没有引用。
除了上述的格式说明符,特殊的序列 %% 可以用作输出 % 字符。

 

 

生成给一个表所有字段加索引

 SELECT format('create index inde_%I  on o_ls_test_recovery(%I)', attname,attname)
 FROM pg_attribute
 WHERE attrelid = 'o_ls_test_recovery'::regclass AND attnum > 0
 ORDER BY attnum

 


 

 

 

format格式化字符串,类似C语言的sprintf,其中n$表示第n个参数

select format('Hello %s, %1$s', 'World');

 

 

 

 

SELECT format('COMMENT ON TABLE "myschema"."%I" IS %L;','o_ls_test_1','测试表')

 

 

  SELECT format('INSERT INTO %I VALUES(%L)', 'Foo bar', E'O\'Reilly');

 

 

posted @ 2021-08-03 20:27  star521  阅读(471)  评论(0编辑  收藏  举报