Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    unire due tabelle: problema duplicazione id

    Ciao a tutti,

    ho due database DATA1 e DATA2 che hanno la stessa struttura.

    i due database sono stati identici fino a quando non ho esportato il primo, chiamandolo DATA2 e ho continuato ad inserire i dati solo su questo.

    Adesso ho la necessità di fondere i due database, ossia far si che entrambi contengano le stesse informazioni.

    Come posso fare?

    Ho provato a copiare le tabelle che mi interessano attraverso la console di PhpMyAdmin
    ma ovviamente mi ha dato come errore la duplicazione della chiave primaria.

    Ciao e grazie a tutti.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    157
    è una soluzione orrida, ma potresti prendere le tuple di uno dei database e inserirlo nell'altro(con nuova chiave) e quindi rigestire tutte le dipendenze.

    esempio:

    db1
    tab1
    id nome
    1 a
    2 b
    3 ca

    tab2
    id idtab1
    1 1
    2 1
    3 2

    db2
    tab1
    1 e
    4 f

    tab2
    id idtab1
    1 4


    db1>db2
    tab1
    1 e
    4 f
    5 a
    6 b
    7 ca

    tab2
    id idtab1
    1 4
    2 5
    3 5
    4 6

    è una rottura, ma dovrebbe funzionare

  3. #3
    Utente di HTML.it L'avatar di Takeno
    Registrato dal
    May 2007
    Messaggi
    146
    Aspetta aspetta... vediamo se ho capito

    C'erano una volta due database aggiornati allo stesso modo.

    DATA 1 = DATA 2

    Poi hai smesso di aggiornare DATA 1 ma hai aggiornato solo DATA 2..

    Quindi DATA 2 ha le stesse informazioni di DATA 1 più quelle nuove?
    Se è così credo sia abbastanza scontata l'idea di cancellare DATA 1 e importare tutto DATA2 su DATA1


    Se invece devi fare solo una somma e come chiave primaria hai un ID variabile..
    E' un po' piu complicato :P Intanto che ci penso spiegami bene che tipo di campi hai

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Usa una insert into select

    Selezioni ad esempio il database 2

    codice:
    insert into tabella_database_2 (elenco_campi_separati_da_virgola_ad_esclusione_della_chiave_primaria) 
    select elenco_campi_separati_da_virgola_ad_esclusione_della_chiave_primaria from nome_database1.nome_tabella_database1
    Fai le tue prove su una copia di backup dei db.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.