Saltar para conteúdo


Foto
- - - - -

Migrar tabelas de SQLite para MySQL(Web) e atualizar valores das chaves estrangeiras?

sqlite sql mysql chave estrangeira foreign key

  • Por favor inicie sessão para responder
3 respostas a este tópico

#1 nnunno

nnunno

    Novato

  • Membros
  • Pip
  • 3 mensagens
  • Samsung Galaxy S4

Mensagem publicada 04 November 2015 - 14:03

Estou a desenvolver uma aplicação para android onde os dados estão armazenados numa base de dados relacional SQLite.

 

Fiz a sincronização com uma base de dados MySQL, na web, para onde estou a enviar os dados das diversas tabelas SQLite

 

O problema é que não sei como fazer para manter o relacionamento entre as tabelas, pois as chaves primárias das tabelas vão ser atualizadas com AUTO_INCREMENT e as chaves estrangeiras nas outras tabelas deixam de estar corretas, pois não são atualizadas para o novo valor das chaves primárias.

 

Quem me ajuda?


  • AustAdmilk e Rebdert gosta disto

#2 xanex

xanex

    Membro

  • Membros
  • PipPip
  • 199 mensagens
  • LocalizaçãoLisboa
  • Nexus 10, Nexus 5x, Nexus 6p

Mensagem publicada 04 November 2015 - 14:43

Não conheco nenhuma maneira nativa para fazeres isso
Se queres ter a bd como tens no sqlite acho nao podes utilizar o auto incremente 

 

Na pior das hipotses, metes 2 campos de id, 1 para o auto incremente e o outro para o id que já tinhas

ou podes criar uma nova tabela relacional só para mapear os ids antigos com os novos

ou metes id's novos e fazes a mudança das foren keys que tens nas outras tabelas

 

existem algumas opçoes que podes aplicar ao problema, tens de ver como vai afetar o projecto nos proximos passos e escolher a que achas melhor

 



#3 nnunno

nnunno

    Novato

  • Membros
  • Pip
  • 3 mensagens
  • Samsung Galaxy S4

Mensagem publicada 04 November 2015 - 22:42

Obrigado pelas dicas.

 

A minha ideia original era mesmo adicionar um segundo campo a cada tabela (id2), onde guardasse os valores das chaves primárias.

De seguida, quando enviasse os dados do SQLite para a web (MySQL) e os valores das chaves primárias fossem atualizados com o "auto_increment" sempre tinha os valores originais guardados no campo id2 para poder comparar e atualizar as chaves externas nas outras tabelas.

 

Pensei que esta ideia fosse descabida, mas assim com as tuas sugestões já vou avançar para ela com mais confiança.

 

Obrigado.



#4 xanex

xanex

    Membro

  • Membros
  • PipPip
  • 199 mensagens
  • LocalizaçãoLisboa
  • Nexus 10, Nexus 5x, Nexus 6p

Mensagem publicada 05 November 2015 - 11:50

;) 
depois diz como correu 







Também marcado com uma ou mais destas tags: sqlite, sql, mysql, chave estrangeira, foreign key