1
resposta

Problema com primary key e relacionamento

Estou com um problema para inserir dados em um tabela que tem o ID da rua que não pode ser repetido, o NOME_DA_RUA, e o CODIGO_DA_CASA desta rua, porém varias casas irão usar o id da rua, que não pode ser repetido. Tem alguma maneira de eu criar essa tabela ou alguma query para adicionar + 1 no id quando ele se repetir?

estou tentando usar este codigo mas n funciona


INSERT INTO  logradouros (
    id_logradouros, cep, id_integracao, nome)
SELECT cod_logradouro, cep, cod_imovel, nome_logradouro
FROM tabela
IF (cod_logradouro = id_logradouros) THEN
   cod_logradouro + 1
END IF;
1 resposta

Olá Guilherme, tudo bem?

Se sempre que o ID da rua se repetir você for tentar adicionar um número a mais ao campo, o seu banco de dados vai ficar um pouco bagunçado Guilherme. Veja bem, utilizamos a chave primária como o identificador dos nossos campos, então ele precisa ser único, mas a partir do momento que esse valor deixa de ser único, ele não pode ser utilizado como chave primária.

Cada rua precisa ter um identificador único, se você tentar adicionar um número a mais ao ID da rua, uma rua só terá vários indentificadores diferentes e isso pode gerar problemas mais a frente no seu banco de dados. Pela lógica cada casa estará sendo associada a ruas diferentes, já que o ID da rua será diferente para cada casa, mesmo elas sendo da mesma rua.

Então Guilherme, um forma de resolver o problema de chave primária desta sua tabela, seria utilizar um campo com id sequencial, assim você não teria problemas em cadastrar várias casas com o id de uma mesma rua.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software