leocrj 0 Denunciar post Postado Fevereiro 15, 2006 Está exibindo o seguinte erro:insert or update on table "mensagem" violates foreign key constraint "mensagem_idcliente_fkey" DETAIL: Key (idcliente)=(0) is not present in table "usuario". Eu estou tentando inserir um valor nulo em um campo chave estrangeira, o problema é que esta chave tem que aceitar valores nulos, como eu faço isso ?O meu sql está assim:CREATE TABLE mensagem(id int4 NOT NULL DEFAULT nextval('id_seq_mensagem'::text),idusuario int4,idcliente int4,idchamado int4,mensagem text,data varchar(25),CONSTRAINT chamado__pkey PRIMARY KEY (id),CONSTRAINT mensagem_idchamado_fkey FOREIGN KEY (idchamado) REFERENCES chamado (id) ON UPDATE NO ACTION ON DELETE NO ACTION,CONSTRAINT mensagem_idcliente_fkey FOREIGN KEY (idcliente) REFERENCES usuario (id) ON UPDATE NO ACTION ON DELETE NO ACTION,CONSTRAINT mensagem_idusuario_fkey FOREIGN KEY (idusuario) REFERENCES usuario (id) ON UPDATE NO ACTION ON DELETE NO ACTION) Compartilhar este post Link para o post Compartilhar em outros sites
Rpizao 0 Denunciar post Postado Fevereiro 16, 2006 ih cara...impossivel...se você tem uma chave estrangeira declarada e associou uma constraint a ela não vai dar.O que tu pode fazer e coloca um campo e não associa-lo como chave estrangeira.Crie uma trigger que verifique se o mesmo existe na tabela origem, assim evita de jogar lá valores que não façam referencia a tabela usuarios.Espero ter sido claro.Abraços.Rafael. Compartilhar este post Link para o post Compartilhar em outros sites