046.PGSQL-format字元格式化實現批量給表加索引
阿新 • • 發佈:2021-08-03
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');