Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

mysql foreing key não traz id

Criei essas duas tabelas uma com relação de 1:n com a outra, só que quando faço select a fk esta null em vez de trazer o id da outra tabela, podem me ajudar?

CREATE TABLE `TBL_DEPTOS` ( `ID_DEPTOS` INT NOT NULL auto_increment, `COD_DEPTOS` VARCHAR(255), `DEPARTAMENTO` VARCHAR(255), primary key (`ID_DEPTOS`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `TBL_SETOR` ( `ID_SETOR` int NOT NULL auto_increment, `COD_SETOR` VARCHAR(255), `DEPARTAMENTO` VARCHAR(255), `SETOR` VARCHAR(255), `ID_DEPTOS` INT, primary key(`ID_SETOR`), FOREIGN KEY (`ID_DEPTOS`) REFERENCES TBL_DEPTOS(`ID_DEPTOS`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

7 respostas

Opa Diego, tudo bem? Você pode postar aqui como é o select que está fazendo?

´´´SELECT * FROM tbl_setor s inner join tbl_deptos as d on d.ID_DEPTOS = s.ID_DEPTOS;´´´

não é a questão do select, o campo fk não esta trazendo i id da outra tabela, ele esta nulo

o retorno está assim:

```# ID_SETOR, COD_SETOR, DEPARTAMENTO, SETOR, ID_DEPTOS

1, 01010, PGC, LIQUIDA, null 2, 01011, PGC, DPH, null 3, 01012, PGC, PERFUMARIA, null```

solução!

o problema estava no insert eu não estava passando o valor da fk. obrigado.

Hoo! Desculpe a demora pra responder, mas que bom que resolveu o problema. Uma dica é não permitir FK com valores nulos. Mas claro, depende muito do caso.

Desculpe novamente, bons estudos. Abraço

Eu que agradeço.