Muchas gracias Alvaro, tienes razon, la estructura de la tabla que contiene
la FK apuntando a mi tabla rrhh.cargo es esta
CREATE TABLE usuario.funcionario
(
id bigint NOT NULL, -- PK, campo identificador.
cargo_id bigint NOT NULL, -- Referencia al cargo del funcionario.
funcionario_id_superior bigint, -- Referencia al superior inmediato.
email_institucional_interno character varying(100) NOT NULL, -- Dirección
de Email interno de la DNCP.
email_institucional_externo character varying(100), -- Dirección de email
externo de la DNCP.
interno character varying(10), -- Interno del telefono institucional.
departamento_id bigint,
acceso_externo boolean NOT NULL DEFAULT false,
CONSTRAINT pk_funcionario PRIMARY KEY (id),
CONSTRAINT fk_funcionario_cargo FOREIGN KEY (cargo_id)
REFERENCES rrhh.cargo (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_funcionario_departamento FOREIGN KEY (departamento_id)
REFERENCES rrhh.departamento (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_funcionario_funcionario_superior FOREIGN KEY
(funcionario_id_superior)
REFERENCES usuario.funcionario (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT fk_funcionario_usuario FOREIGN KEY (id)
REFERENCES usuario.usuario (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT funcionario_email_institucional_interno_key UNIQUE
(email_institucional_interno)
)
WITH (
OIDS=TRUE
);
ALTER TABLE usuario.funcionario OWNER TO dayala;
GRANT ALL ON TABLE usuario.funcionario TO dayala;
GRANT ALL ON TABLE usuario.funcionario TO sicp;
GRANT SELECT ON TABLE usuario.funcionario TO reporte;
He corregido estos privilegios, y ya he podido borrar los registros..!!
El 14 de junio de 2010 17:26, Alvaro Herrera
<[email protected]>escribió:
> Excerpts from Diego Ayala's message of lun jun 14 16:43:48 -0400 2010:
> > La tabla no contiene FKs, esta es la estructura actual
>
> No, pero ya dijiste que hay otra tabla que apunta a esta. Ten en cuenta
> que los chequeos de FK se ejecutan con los privilegios del dueño de la
> tabla; no hacerlo sería un problema de seguridad.
>
> En resumen, corrige los permisos, y no uses superusuarios.
>
> --
> Álvaro Herrera <[email protected]>
> The PostgreSQL Company - Command Prompt, Inc.
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
>
--
Diego Ayala