> -----Mensaje original-----
> De: Arcel Labrada Batista
> 
...
> begin
> 
> 
> create table public.tb_estudiante_"||NEW.id||() INHERITS 
> (tb_estudiante);
> 
> return new;
> end;
> 
> $body$
> LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
> 
> y el problema esta en la concatenación, me da un error que dice:
> 
> ERROR:  error de sintaxis en o cerca de «||» at character 30
> QUERY:  create table "tb_estudiante_"|| $1 ||() INHERITS 
> (tb_estudiante)
> CONTEXT:  SQL statement in PL/PgSQL function 
> "f_crear_tablas_replicas" near line 7
> 

Para ejecutar SQL dinámico en plpgsql debes usar EXECUTE. 
Ejemplo:

EXECUTE 'create table public.tb_estudiante_' || NEW.id || '() INHERITS
(tb_estudiante)';


Slds,
Fernando.

--
TIP 4: No hagas 'kill -9' a postmaster

Responder a