Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [mysql] auto_increment

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    76

    [mysql] auto_increment

    ciao!

    sto spostando i miei siti da php + mdb a php + mysql...

    Devo sopostare i dati da mdb a mysql, il mio problema sono le chiavi auto incrementanti quando faccio l'import. Posso disabilitare la chiave autoincrementante momentaneamente inserendo i valori a mano? Oppure posso impostarla ad autoincrementante a posteriori?


    vi ringrazio! splendido mysql... un mondo favoloso!
    Doubting, dreaming dreams no mortal ever dared to dream before.
    - The Raven, Edgar Allan Poe

  2. #2
    puoi fare entrambe le cose.

    Se il campo lo vuoi incrementare con valori tuoi potresti togliere la caratteristica di autoincremet alla colonna, inserire i valori cosi' come sono. Poi li cancelli tutti con un update, e quando andrai a settare nuovamente l' auto_increment ti verranno valorizzati automaticamente tutti i campi.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    76
    questo mi da speranza...

    mi chiedo però quale sia la sintassi sql da usare... Non l'ho trovata sulla reference in www.mysql.it (ottima), e non mi è di aiuto nemmeno php.net.

    forse posso impostare che l'auto incrementante parta da (ad esempio) 100 ed inserire i valori più piccoli, magari non mi fa conflitto...

    ALTER TABLE tbl AUTOINCREMENT = 100;

    non ho idea di come dirgli a livello pratico (sql) di alterare la tabella.

    Consiglio a tutti: "SQL, Guida di riferimento" edito Apogeo o'Reilly di Kevin Kline e Daniel Kline... è fatto benissimo! Con tutte le differenze tra Sql server, mysql, oracle e postgreSql... magari vi torna utile.
    Doubting, dreaming dreams no mortal ever dared to dream before.
    - The Raven, Edgar Allan Poe

  4. #4
    auto_increment deve essere sempre chiave primaria. Come tale non puo' essere NULL e non puo' essere doppio.

    Puoi impostare il valore che ti pare da cui partira'. Andra' sempre avanti.

    Per impostare il valore prossimo di auto_increment usa la sintassi che hai proposto:

    ALTER TABLE table AUTO_INCREMENT = (INT)

    Tieni presente che il valore non scendera' mai al di sotto del piu' alto valore presente, mentre buchi vuoti si possono recuperare inserendo i valori in modo esplicito.

    se per esempio auto_increment e' partito da 1 mentre tu colevi partisse da 101, puoi fare l'update con un piccolo accorgimento:

    UPDATE table SET id = id + 100 ORDER BY id DESC.

    in questo modo parte dal valore piu' grande e lo aumenta di 100 via via scendendo, cosi' da non incontrare mai un valore doppio.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    76
    ti ringrazio! consigli preziosi! ora vedo di metterli in pratica

    ciao!
    Doubting, dreaming dreams no mortal ever dared to dream before.
    - The Raven, Edgar Allan Poe

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.