1
resposta

tentando um

Vamo lá, como parte da criação de um codigo-chave pra minha tabela, eu preciso utilizar uma tabela auxiliar

Insira aqui a descrição dessa imagem para ajudar na acessibilidade na minha tabela VAGAS, eu criei um novo campo chamado CD_CARGO_ALFANUM que eu preciso completar com o valor ALFANUMERICO relacionado com essa tabela, pelo código do cargo no campo CD_CARGO, que é similar em ambas as tabelas

eu tentei o seguinte código:

INSERT INTO vagas (CD_CARGO_ALFANUM)
SELECT a.ALFANUMERICO
FROM cargo as a
LEFT JOIN VAGAS as b ON a.CD_CARGO = b.CD_CARGO;

e ele nao insere. eu tentei fazer a seleção

SELECT b.*,  a.ALFANUMERICO
FROM cargo as a
LEFT JOIN VAGAS as b ON a.CD_CARGO = b.CD_CARGO;

e a consulta saiu como esperado. Porém para inserir o valor na tabela, os valores permanecem NULL. Onde estou errando?

1 resposta

Oii, Pedro! Tudo bem?

Pedro, um possível solução seria adicionar a cláusula WHERE na sua consulta de inserção, para especificar que você deseja atualizar apenas os registros que possuem um valor correspondente na tabela cargo.

Um exemplo de como ficaria o seu código:

INSERT INTO vagas (CD_CARGO_ALFANUM)
SELECT a.ALFANUMERICO
FROM cargo as a
LEFT JOIN VAGAS as b ON a.CD_CARGO = b.CD_CARGO
WHERE b.CD_CARGO IS NOT NULL;

A cláusula WHERE b.CD_CARGO IS NOT NULL garante que apenas os registros que possuem um valor correspondente na tabela cargo serão atualizados na tabela VAGAS.

Para expandir mais os seus conhecimentos em WHERE, recomendo a leitura da documentação oficial. Por lá é abordado de maneira um pouco mais aprofundada sobre essa cláusula.

A página pode abrir em Inglês, caso queira ler em Português clica com o botão direito do mouse em qualquer canto da página e escolha a opção "Traduzir para o português".

Espero ter ajudado.

Bons estudos, Pedro!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!