PostgreSql 自定义函数:批量调整某个字段长度

CREATE or replace FUNCTION alterColumn(cloumnName VARCHAR(32), out v_retcode text)
AS
$BODY$
declare
row_data VARCHAR;
showSql VARCHAR;
i INTEGER:=1;
intm INTEGER;

BEGIN
for row_data in select relname as tabname from pg_class c where relkind = 'r' and relname not like 'pg_%' and relname not like 'sql_%' and relname like 't_qcc%' and relname not in('t_gtl_mini_program','t_gtl_customer_mini_program') order by relname LOOP
intm = (select count(*) from information_schema.columns where table_name =row_data and column_name=cloumnName);

raise notice 'Parameter is: %', intm;
if intm > 0 then
showSql = 'alter TABLE ' || row_data ||' ALTER COLUMN ' || cloumnName ||' TYPE varchar(64)';
EXECUTE showSql;
raise notice 'Parameter is: %', showSql;
end if;
END LOOP;
END;
$BODY$
language plpgsql;

SELECT * from alterColumn('data_id')

猜你喜欢

转载自www.cnblogs.com/zchengxu/p/12662009.html