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 @   star521  阅读(536)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2020-08-03 006.PGSQL-数据倾斜、数据各节点分布情况;创建序列、创建分布式表distribute by hash(列名)
点击右上角即可分享
微信分享提示