Gracias Anthony

funciono perfecto probado con postgres 9.5 todo bien. me ahorraste la tarde
jejeje.

El 22 de octubre de 2017, 8:34, Anthony Sotolongo <[email protected]>
escribió:

> Hola, una vez tuve que hacer algo similar de agregar el mismo campo a
> muchas tablas y lo resolví con una función que me cree, donde le pasaba el
> esquema, el nombre del atributo y el tipo de dato, recorría mis tablas y
> bum 'add column':
>
> select agregar_atributo('esquema', 'nuevo', 'timestamp');
>
>
> CREATE OR REPLACE FUNCTION agregar_atributo(esquema text, atributo text,
> tipo text)
>   RETURNS integer AS
> $BODY$
>      DECLARE
>      tabla text;
>      comando text;
>
>      cantidad int :=0;
>      flag boolean:=true;
>      BEGIN
>      FOR tabla IN SELECT ns.nspname||'.'|| pg.relname as tb FROM pg_class
> pg join pg_namespace ns  on (pg.relnamespace = ns.oid)
>                 where pg.relkind='r' and ns.nspname=$1   LOOP
>      comando:='ALTER TABLE  IF EXISTS '|| tabla ||' add  COLUMN '||
> atributo ||' '|| tipo || ' ;' ;
>
>      BEGIN
>        RAISE NOTICE 'Ejecutando  % ', comando;
>        EXECUTE comando;
>            EXCEPTION
>
>            WHEN OTHERS THEN
>
>            RAISE notice 'Error en tabla %', tabla;
>                flag:=false;
>
>
>                END;
>       if flag=true then
>        cantidad:=cantidad+1;
>       end if;
>     flag:=true;
>
>     END LOOP;
>
>     return cantidad;
>      END;
>      $BODY$
>   LANGUAGE plpgsql ;
>
>
>
> On 22/10/17 09:53, jvenegasperu . wrote:
>
>> Buen día todos
>> Hoy se me presento este caso que necesito agregar un campo a todas las
>> tablas son como 300 tablas así que supongo habra alguna forma con algún
>> script alguien que me pueda ayudar con esto
>>
>
>


-- 
José Mercedes Venegas Acevedo
cel Mov RPC 964185205

Member of the PHP Documentation Group (Spanish)

Reply via email to