posgresql通过PL/pgSQL脚本统一修改某字段大小写

项目在做postgresql数据库适配时遇到了某些问题,需要统一将某个模式含id字段的全部表,将id字段由小写转换为大写,可以通过PL/pgSQL脚本实现。
先确保当前用户有足够的权限

DO $$ 
DECLARE 
    current_table text;
    current_column text;
BEGIN 
    -- 获取所有表名
    FOR current_table IN (SELECT table_name FROM information_schema.tables WHERE table_schema = '你的模式名' AND table_type = 'BASE TABLE') 
    LOOP 
        -- 获取所有列名
        FOR current_column IN (SELECT column_name FROM information_schema.columns WHERE table_schema = '你的模式名' AND table_name = current_table AND column_name = 'id') 
        LOOP 
            -- 生成新的列名
            EXECUTE format('ALTER TABLE %I.%I RENAME COLUMN %I TO %I', '你的模式名', current_table, current_column, 'ID'); 
        END LOOP; 
    END LOOP; 
END $$;

同理,可以更换为其他字段

你可能感兴趣的:(数据库)