Ir para conteúdo

POWERED BY:

Arquivado

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

H.h

Inserir com Soma

Recommended Posts

Bom dia pessoal

 

Estou importando dados de um banco antigo...Sendo que nele a empresa era cadastrada em uma tabela chamada empresa e o aluno em outra tabela chamada aluno. A a relacao para saber se o aluno pertence a empresa era feita na tabela aluno_empresa. Sendo que no atual, tanto o aluno quanto empresa sao cadastrados inicialmente numa tabela pessoa, ou seja, alunos e empresas nunca terao id repetidos.

 

Minha duvida é como importar os dados da tabela aluno_empresa do banco antigo sem que ocorra duplicao de campo que nao pode existir no banco novo.

 

Exemplo no banco antigo o aluno com id=3 podia estar na empresa com id=3, ja no atual isso nao pode pois aluno e empresa pertence incialmente a uma tabela pessoa

 

tava pensnado em exportar a tabela empresa somando o id com a quantidade de aluno.. alguma ideia ?

 

 

Obg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria duas colunas nas novas tabelas

 

tipo_anterior

id_anterior

 

faz dois cursores

 

select * from empresas

insere na nova tabela (atualizando os novos campos)

 

select * from alunos

insere na nova tabela (atualizando os novos campos)

 

O sequencial o MySql mesmo monta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema que os dados da tabela aluno_empresa ficariam invalido nesse caso.

 

Pensei da seguinte maneira e fiz isso:

 

Primeiro exportei os dados do id e nome do aluno da tabela Aluno do banco antigo:

 

--exportando dados para pessoa
SELECT id_aluno, nome
FROM alunos_pf
INTO OUTFILE 'c:/meuarquivo.csv'
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n';

 

Depois inseri esse arquivo csv na minha tabela Pessoa do banco novo (nao tive duplicacao pq ela estava zerada).

 

LOAD DATA LOCAL INFILE 'c:/meuarquivo.csv'
INTO TABLE pessoa
FIELDS TERMINATED BY ';'
(id_aluno, nome)

 

Minha duvida era, tenho que colocar a empresa na tabela pessoa, porem eu tenho empresa com id 1,2,3... que ja existem que vieram do meu aluno. Eu tinha 3318 alunos cadastrados entao fiz assim:

 

Exportei os dados da tabela Empresa do banco antigo, somando à quantidade de alunos que eu tinha registrado:

 

SELECT id_empresa+3318, nome
FROM empresa
INTO OUTFILE 'c:/meuarquivo7.csv'
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n';

 

Importei na tabela Pessoa do banco novo:

 

LOAD DATA LOCAL INFILE 'c:/meuarquivo7.csv'
INTO TABLE pessoa
FIELDS TERMINATED BY ';'
(id_pessoa, nome_pessoa);

 

Depois exportei a tabela aluno_empresa somando 3318 ao id_empresa... solucionou meu problema, porem nao sei se existe uma maneira mais facil de fazer isso. Agradeço a ajuda !

vlw...

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT id_empresa+3318, nome
FROM empresa
INTO OUTFILE 'c:/meuarquivo7.csv'
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\n';

 

Depois exportei a tabela aluno_empresa somando 3318 ao id_empresa... solucionou meu problema, porem nao sei se existe uma maneira mais facil de fazer isso. Agradeço a ajuda !

vlw...

 

H.h,

Realmente não é a melhor maneira tendo em vista que você está somando 3318 para cada id_empresa. #NOSENSE

Se o campo `id_pessoa` da tabela `pessoas` for AUTO_INCREMENT, exporte apenas a coluna nome da tabela empresa para o CSV e importe o arquivo especificando apenas a coluna `nome_pessoa`.

 

Mas parceiro, no meu ponto de vista, o banco ficaria melhor modelado se você continuasse a ter uma tabela PESSOAS para os alunos no entanto, uma tabela EMPRESAS para tal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O objetivo era perder msm o id do sistema antigo, porem sem perder os relacionamento de aluno/empresa. E mudar a modelagem agora no novo sistema esta fora de possibilidades =/... Agradeço a ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O objetivo era perder msm o id do sistema antigo, porem sem perder os relacionamento de aluno/empresa. E mudar a modelagem agora no novo sistema esta fora de possibilidades =/... Agradeço a ajuda!

Deixar de usar o id antigo é uma coisa.

Modelar informações sobre Pessoas numa TB_PESSOAS e Empresas numa TB_EMPRESAS é outro assunto. :)

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.