Olá,
2009/11/26 VisualP Sistemas <[email protected]>
> Ola Pessoal,
>
> Preciso incluir uma nova coluna em todas as tabelas
> de um sistema e gostaria de saber se alguem conhece
> alguma forma de incluir automaticamente esta nova coluna
> de forma automatica.
>
> Algo do tipo:
> ALTER TABLE todas_tabelas ADD COLUMN novo_campo char(1);
>
> Alguem tem alguma dica ou script ???
>
Você pode fazer o seguinte:
CREATE OR REPLACE FUNCTION f_adiciona_coluna()
RETURNS boolean AS $$
DECLARE
lista RECORD;
BEGIN
FOR lista IN SELECT tablename FROM pg_tables WHERE
schemaname='public' ORDER BY tablename LOOP
EXECUTE 'ALTER TABLE ' || lista.tablename || ' ADD COLUMN codigo
INTEGER';
RAISE NOTICE 'Coluna adicionada na tabela %.',lista.tablename;
END LOOP;
IF FOUND THEN
RETURN TRUE;
END IF;
RETURN FALSE;
END;
$$ LANGUAGE PLPGSQL;
Neste exemplo é adicionada a coluna codigo do tipo integer em todas as
tabelas do esquema public. É uma função bem simples, agora é só você adaptar
para o seu caso.
>
>
> Obrigado.
>
> Paulo.
>
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
>
[]s
--
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral