Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 26
  1. #1

    (MYSQL) query aggiungere numeri mancanti in un campo

    Sono giorni che mi scervello ma non ne vengo a capo.
    Espongo brevemente il mio problema.
    Devo fare l'importazione di un DB in mySQL, in questo DB ho una tabella dal nome 'members' con un campo tra tanti altri dal nome 'id'
    Ora il mio problema risiede nel fatto che il campo 'id' contiene numeri progressivi ma con numerosi buchi, per fare un esempio:
    1
    2
    4
    5
    6
    8 etc
    tutto questo fino a 16.000 (ne mancano circa 3700)
    come posso fare per inserire nella tabella i numeri mancanti in modo da importare tutto con una numerazione continuativa?

  2. #2
    come da regolamento (ma nessuno lo legge?) va indicato il db

  3. #3
    chiedo venia, l'avevo indicato solo nell'interno della discussione

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Basta che importi gli altri campi e lasci che il nuovo contatore venga generato automaticamente.

  5. #5
    ti ringrazio per la risposta, ma credo di essermi spiegato male.
    La soluzione che mi proponi è proprio quella che devo evitare, cioè a me serve che un 'id' rimanga con il suo valore originale.
    Ad esempio se io importo
    1
    2
    4
    5
    6
    8
    il nuovo contatore sarà
    1
    2
    3
    4
    5
    6

    quindi mi cambia il 'id' della tabella
    prativamente a me serve prima riempire i buchi nella numerazione, e poi importare il DB

  6. #6
    Originariamente inviato da nicociccio
    ti ringrazio per la risposta, ma credo di essermi spiegato male.
    La soluzione che mi proponi è proprio quella che devo evitare, cioè a me serve che un 'id' rimanga con il suo valore originale.
    Ad esempio se io importo
    1
    2
    4
    5
    6
    8
    il nuovo contatore sarà
    1
    2
    3
    4
    5
    6

    quindi mi cambia il 'id' della tabella
    prativamente a me serve prima riempire i buchi nella numerazione, e poi importare il DB
    fa' un esempio, che questa 'spiegazione' mi ha confuso ancor di più

  7. #7
    come puoi vedere nel db importato mi cambiano le sequenze.

    codice:
    DB originale               DB importato
    1                           1
    2                           2
    4                           3
    5                           4
    7                           5
    9                           6
    Per essere più preciso spiego anche che il problema nasce perchè utilizzo un importatore (impex) per passare un forum da invision a vBullettin.
    Pertanto se un utente nel forum invision ha l'id 317 non posso permettere che nel nuovo abbia un id diverso in quanto gli id vengono utilizzati anche per un sistema feedback.
    Onestamente avevo trovato anche un'altra soluzione a importazione finita, aggiungendo un campo fittizio dal nome oldid e chiamando questa funzione con
    UPDATE `vb_user` SET `oldid` = '0' WHERE `userid` = 1 LIMIT 1 ; etc. etc.
    dopodichè eliminavo il campo importato originariamente e rinominavo il campo oldid.
    Tuttavia perderei i messaggi privati, in quanto sarebbero impossibili da resettare con i campi from_id e to_id.
    Allora ho pensato alla soluzione di riempire prima dell'importazione i campi sequenzialmente mancanti.
    in questo caso "ingannerei" la board facendogli leggere degli utenti fittizi dove mancano gli id utente e quidi avrei gli esatti id della board di partenza.

  8. #8
    fammi capire se ho capito
    codice:
    DB originale               DB importato
    1---------------------------1
    2---------------------------2
    4-----------+               3 nuovo
                +---------------4
    5---------------------------5
    7-----------+               6 nuovo
                +---------------7
    9-----------+               8 nuovo
                +---------------9
    così?

  9. #9

  10. #10
    ti basta creare una tabella con tutti i numeri progressivi (falla da 40.000 per essere sicuri) poi fai l'importazione da una join tra la tabella originaria e questa dei numeri, così l'id è sempre pieno.

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.