Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eduardo Pizza

[Resolvido] Inserir um valor em várias linhas de uma tabela ao me

Recommended Posts

Boa tarde amigos do iMasters,

 

É possível inserir um valor em várias linhas de uma tabela ao mesmo tempo?

 

Tenho 2 tabelas

 

1- SETOR (lojas, serviços, Classificados... )

2- CATEGORIAS (roupas, joias, engenharia.. ) Cada categoria pertence a um setor

 

A tabela CATEGORIAS possui uma coluna VARCHAR que funciona como chave estrangeira,

mas agora eu sei que é mehor usar um inteiro tipo "id_setor", então criei esta coluna

 

mas a tabela já contém uns 500 registros,

 

tem como eu executar uma ação do tipo

 

"Selecione na tabela "categorias" onde "coluna_setor" = "roupas" e adicione e valor "3" a todas as colunas "id_setor"

 

??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Eduardo Pizza,

 

Você pode fazer o seguinte, como você já tem um id para cada SETOR faça.

 

Duplique sua tabela CATEGORIA utilizando somente a estrutura anterior, feito isto, adicione o campo que será a FK da tabela SETOR. Com a nova tabela criada, agora insira os dados buscando-os da tabela anterior.

 

Você terá um pouco de trabalho para 'setorizar' todas as categorias, mas melhor fazer isto com 500 registros do que com 1000. :D.

 

Espero ter lhe sido útil, abraços.

 

_ _

Fabiano Abreu

Papo Sql - Tutoriais, dicas e truques sobre SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eduardo,

 

Você pode atualizar o campo varchar com o novo id gerado, depois na hora de inserir na nova tabela, apenas de um cast no campo id antes de inseri-ló.

 

Abraços.

 

_ _

Fabiano Abreu

Papo Sql - Tutoriais, dicas e truques sobre SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eduardo,

 

Você pode fazer mais ou menos assim:

 

Update CATEGORIAS 

Set campo_fk_varchar = 1

Where campo_fk_varchar = 'lojas'

 

Depois, quando você for mandar para a nova tabela (aquela que duplicamos), faça:

 

Insert into tabela_nova(id_setor,...)
Select cast(campo_fk_varchar as int), ...
From CATEGORIAS 

 

Mesmo neste caso, você terá que mapear os tipos de categorias.

 

Abraços.

 

_ _

Fabiano Abreu

Papo Sql - Tutoriais, dicas e truques sobre SQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, Consegui fazer assim:

 

UPDATE empresas SET empresas.id_categoria=10

WHERE empresas.categoria="Bares e Casas noturnas" ;

 

é o que você falou ne,

 

 

 

 

Também precisei usar isso depois e já deixo aqui p vocês também:

 

 

UPDATE empresas, categorias SET empresas.id_categoria=categorias.id_categoria

WHERE empresas.categoria=categorias.nome;

 

 

 

Atualize a tabela 'empresas' determinando ('setando') que

onde a coluna 'categoria' da tabela 'empresas'

tiver valor igual ao um valor da coluna 'nome' da tabela 'categorias'

receba o valor para a coluna 'id_categoria'

igual ao valor de 'id_categoria' da tabela 'categorias'

 

 

obs: Este comando foi usado quando foi necessário inserir os 'id_categoria' da tabela categorias em todos os registros da tabela 'empresas'. Nesta tabela já existia a coluna 'categorias', que corresponde à coluna 'nomes' da tabela 'categoria'.

 

Assim foi possível usar esta relação para inserir em todos os registros de 'empresas' os 'id_categoria' existentes na tabela 'categorias'

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.