H.h 0 Denunciar post Postado Setembro 6, 2012 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
Motta 645 Denunciar post Postado Setembro 6, 2012 A coluna da nova tabela será auto-incremento ? Compartilhar este post Link para o post Compartilhar em outros sites
H.h 0 Denunciar post Postado Setembro 6, 2012 sim sim.. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Setembro 6, 2012 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
H.h 0 Denunciar post Postado Setembro 6, 2012 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
Motta 645 Denunciar post Postado Setembro 6, 2012 Assim é perdido o nº do id do Sistema antigo. Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Setembro 9, 2012 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
H.h 0 Denunciar post Postado Setembro 11, 2012 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
ricci ottadnot 4 Denunciar post Postado Setembro 11, 2012 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