Problemas com foreign key [RESOLVIDA]

5 respostas
G

Bom dia.

Seguinte, criei um novo campo em minha tabela, o campo deve ser foreign key.
por exemplo:

ALTER TABLE CONTASRECEBER ADD CODIGO_PLANOCONTAS BIGINT;
ALTER TABLE CONTASRECEBER ADD CONSTRAINT FK_CODIGO_PLC_CR FOREIGN KEY (CODIGO_PLANOCONTAS) REFERENCES PLANOCONTAS (CODIGO_PLC);

mas ao executar o comando ele cria o campo, mas na foregn key me retorna o seguinte erro:

ERROR: insert or update on table “prodserv” violates foreign key constraint "fk_codigo_plc_prodserv"
DETAIL: Key (codigo_planocontas)=(36) is not present in table “planocontas”.

Já procurei em outros foruns e não encontrei nada a respeito.
Fico grato se alguem puder me ajudar.

Obrigado.

5 Respostas

T

Bom, dia qual banco você está usando?

D

gilvanandre:
Bom dia.

Seguinte, criei um novo campo em minha tabela, o campo deve ser foreign key.
por exemplo:

ALTER TABLE CONTASRECEBER ADD CODIGO_PLANOCONTAS BIGINT;
ALTER TABLE CONTASRECEBER ADD CONSTRAINT FK_CODIGO_PLC_CR FOREIGN KEY (CODIGO_PLANOCONTAS) REFERENCES PLANOCONTAS (CODIGO_PLC);

mas ao executar o comando ele cria o campo, mas na foregn key me retorna o seguinte erro:

ERROR: insert or update on table “prodserv” violates foreign key constraint "fk_codigo_plc_prodserv"
DETAIL: Key (codigo_planocontas)=(36) is not present in table “planocontas”.

Já procurei em outros foruns e não encontrei nada a respeito.
Fico grato se alguem puder me ajudar.

Obrigado.


DETAIL: Key (codigo_planocontas)=(36) is not present in table “planocontas”.
O erro é simples, não existe chave de código “36” na coluna “codigo_planocontas” da tabela “planocontas”, adicione este relacionamento para que a coluna que tu quer possa ser uma FK.

Att,

G

damghani:
gilvanandre:
Bom dia.

Seguinte, criei um novo campo em minha tabela, o campo deve ser foreign key.
por exemplo:

ALTER TABLE CONTASRECEBER ADD CODIGO_PLANOCONTAS BIGINT;
ALTER TABLE CONTASRECEBER ADD CONSTRAINT FK_CODIGO_PLC_CR FOREIGN KEY (CODIGO_PLANOCONTAS) REFERENCES PLANOCONTAS (CODIGO_PLC);

mas ao executar o comando ele cria o campo, mas na foregn key me retorna o seguinte erro:

ERROR: insert or update on table “prodserv” violates foreign key constraint "fk_codigo_plc_prodserv"
DETAIL: Key (codigo_planocontas)=(36) is not present in table “planocontas”.

Já procurei em outros foruns e não encontrei nada a respeito.
Fico grato se alguem puder me ajudar.

Obrigado.


DETAIL: Key (codigo_planocontas)=(36) is not present in table “planocontas”.
O erro é simples, não existe chave de código “36” na coluna “codigo_planocontas” da tabela “planocontas”, adicione este relacionamento para que a coluna que tu quer possa ser uma FK.

Att,

Seguinte, na minha tabela planocontas nem existe esse campo codigo_planocontas, o nome da chave primária dessa tabela é codigo_plc, ou eu que não te entendi direito!
Pode me explicar melhor?
Obrigado

G

Ok… já descobri o erro.

O campo na tabela contas a receber, de alguma forma possui dados, no caso o código 36.
E ao setar a foreign key ele procura na tabela do plano de contas um registro de codigo 36, mas não encontra na tabela plano de contas.

Obrigado pela ajuda.

B

gilvanandre:
damghani:
gilvanandre:
Bom dia.

Seguinte, criei um novo campo em minha tabela, o campo deve ser foreign key.
por exemplo:

ALTER TABLE CONTASRECEBER ADD CODIGO_PLANOCONTAS BIGINT;
ALTER TABLE CONTASRECEBER ADD CONSTRAINT FK_CODIGO_PLC_CR FOREIGN KEY (CODIGO_PLANOCONTAS) REFERENCES PLANOCONTAS (CODIGO_PLC);

mas ao executar o comando ele cria o campo, mas na foregn key me retorna o seguinte erro:

ERROR: insert or update on table “prodserv” violates foreign key constraint "fk_codigo_plc_prodserv"
DETAIL: Key (codigo_planocontas)=(36) is not present in table “planocontas”.

Já procurei em outros foruns e não encontrei nada a respeito.
Fico grato se alguem puder me ajudar.

Obrigado.


DETAIL: Key (codigo_planocontas)=(36) is not present in table “planocontas”.
O erro é simples, não existe chave de código “36” na coluna “codigo_planocontas” da tabela “planocontas”, adicione este relacionamento para que a coluna que tu quer possa ser uma FK.

Att,

Seguinte, na minha tabela planocontas nem existe esse campo codigo_planocontas, o nome da chave primária dessa tabela é codigo_plc, ou eu que não te entendi direito!
Pode me explicar melhor?
Obrigado

O que o DETAIL está informando é que houve a tentativa de inserir no campo CODIGO_PLANOCONTAS da tabela CONTASRECEBER o valor 36. Porém, nenhum registro da tabela PLANOCONTAS possui o valor 36 no campo CODIGO_PLC. Dessa forma não tem como relacionar um registro da tabela CONTASRECEBER a um registro inexistente na tabela PLANOCONTAS.

Criado 24 de fevereiro de 2012
Ultima resposta 24 de fev. de 2012
Respostas 5
Participantes 4