Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003

    [MySQL] Autoincrement impazzito

    Controllando il database ho scoperto che un indice autoincrementante ha fatto un salto mostruoso.
    In pratica è passato da 616 a 524900 VVoVe:

    Che è successo? E come posso ripristinare il conteggio, dato che mi segna come "prossimo autoindex" il valore 524.957?

  2. #2
    hai già provato con
    ALTER TABLE `tabella` AUTO_INCREMENT =1 ?

  3. #3
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Originariamente inviato da troglos
    hai già provato con
    ALTER TABLE `tabella` AUTO_INCREMENT =1 ?
    Precisamente a cosa serve? A modificare l'autoindex?
    O mi modifica tutti gli id autoincrementanti?

    No perchè avendo delle altre tabelle che usano l'id impazzito come chiave esterna non vorrei mandare il sistema a meretrici

  4. #4
    ti resetta l'autoindex al numero piu' basso presente +1 (anche se lo forzi a 1, come nell'esempio che ho fatto prima, non ti preoccupare )

    quindi dovresti prima correggere a mano quello sballato riportandolo ad un valore "normale", e poi modificare l'autoindex con quella query (o da phpmyadmin, nella pagina OPERAZIONI, in basso)


    ah, poi ovvio che se dei valori di altre tabelle sono relazionati all'indice sballato sì che ti puoi trovare nei casini

    segnati l'ID sballato e modificalo anche nelle altre tabelle dopo che fai l'update autoincrement

  5. #5
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Originariamente inviato da troglos
    ti resetta l'autoindex al numero piu' basso presente +1 (anche se lo forzi a 1, come nell'esempio che ho fatto prima, non ti preoccupare )

    quindi dovresti prima correggere a mano quello sballato riportandolo ad un valore "normale", e poi modificare l'autoindex con quella query (o da phpmyadmin, nella pagina OPERAZIONI, in basso)


    ah, poi ovvio che se dei valori di altre tabelle sono relazionati all'indice sballato sì che ti puoi trovare nei casini

    segnati l'ID sballato e modificalo anche nelle altre tabelle dopo che fai l'update autoincrement
    Dici che una query del tipo
    UPDATE tabella SET id=IF(id>500000,id-524283,id)
    vada bene?

    In questo modo dovrei tenere salde anche le corrispondenze.

    Il primo id valido sarebbe 617 (ovvero il successivo dell'ultimo "valido")

  6. #6
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Ok fatto ed ho utilizzato lo stesso sistema anche per le tabelle che avevano l'id sballato come chiave esterna, e la corrispondenza è stata mantenuta... se no.. sai che palle a lavorare di backup su un InnoDB

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    30
    Originariamente inviato da troglos
    hai già provato con
    ALTER TABLE `tabella` AUTO_INCREMENT =1 ?
    Spiegami bene un po'. Se io ho una tabella con gli indici 1,2,3,4,5,6,7,8. E il prossimo autoindex sarà 9. Cancello il record 8. Avrò quindi 1,2,3,4,5,6,7. E il prossimo autoindex rimarrà 9. Come faccio a cambiarlo?

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.