2013-07-05 10 views
17

Nel mio tavolo ho Auto ID incremento che sta avendo il suo numero, come da 1 a 66.440 e il prossimo numero è 88.846.790 + incremento da qui fino 88846900.numero Change AutoIndex Mysql

Non ci sono record in mezzo 66.440-88.846.790

voglio che il mio prossimo numero di incremento automatico per essere 66441, ma la sua assunzione 88.846.791, mi potete aiutare nella creazione di incremento automatico accanto al 66441,

+2

Per tutti i futuri visitatori di questa domanda: non tentare mai di impostare un valore di incremento automatico inferiore al più grande ID nella tabella. Incontrerai problemi mentre le tue righe contano fino a entrare in conflitto con le righe esistenti. La tua tabella probabilmente svilupperà lacune nella sequenza di incremento automatico: è previsto e va bene, il punto di incremento automatico è che il campo non avrà alcun significato semantico, quindi le lacune non causano problemi. Se si è in pericolo di esaurire lo spazio intero utilizzabile di "2.147.483.647", si consideri di rendere il campo senza segno o "BIGINT", o di ricostruire i dati (e gestire i riferimenti). – Jason

risposta

19
alter table tablename AUTO_INCREMENT=664441 

dovrebbe fare

+0

No non il suo lavoro la sua assunzione 88.846.791 numero solo –

+0

@ Tim Dinh ha un valido punto, rimuovere tutte le righe avendo auto_incr valore> 664.440 – Satya

+0

@ Satya Non riesco a rimuovere quei numeri, ne ho bisogno anche quei numeri –

6

È possibile utilizzare ALTER TABLE per modificare il valore AUTO_INCREMENT:

ALTER TABLE my_table AUTO_INCREMENT = 66441; 

Vedere MySQL reference per ulteriori dettagli.

Ricordarsi di reinserire tutte le righe con un ID superiore a 88846790

Se non si rimuovono le righe con un ID superiore a 66441,

la variazione autoincrement non fa nulla.

Esempio:

ID Value 
---- -------- 
    1  C 
    2  A 
    4  D 
50  A 
51  C 

Se voglio cambiare incremento automatico per 5 ho bisogno di rimuovere o reinserire la prima 50 e 51. Perché altrimenti il ​​prossimo incremento automatico sarà comunque 52.

A seconda di quanto e quanto sia importante il dato è, spesso la cosa migliore da fare è: Niente

Perché quelle ID primarie sono relazioni con altre righe, e gli URL forse anche basata sul Web opn tali ID . Questo fallirà, a meno che non crei una sorta di script.

+0

No, non sta funzionando, prendendo solo il numero 88846791 –

+0

Ricordarsi di reinserire o rimuovere tutte le righe con un ID superiore a 88846790. Leggere la risposta e provare ... – Timmetje

+0

sì Ur destra, quindi esiste un altro modo per raggiungere questo obiettivo ..! –

1

È possibile aggiornare campo di incremento automatico utilizzando ALTER TABLE

ALTER TABLE tablename AUTO_INCREMENT = 66441 
+0

No la sua non funziona proprio prendendo 88.846.791 numero solo –

+0

ha u eseguire questa query – PSR

+0

Sì ho eseguito questa query –

1
ALTER TABLE tbl AUTO_INCREMENT = 66441; 

Se non si dispone di record IDS superiore a 66441 quindi dovrebbe funzionare.

+1

Sì, ho menzionato in la mia domanda non registra tra 66440 e 88846790 –

+0

@SiddeshBhalke: quindi deve e dovrebbe funzionare, puoi pubblicare il tuo tipo di dati di campo con la lunghezza. –

+0

@ Mahesh.D: certo –

3

È possibile utilizzare il comando ALTER TABLE come qui di seguito,

ALTER TABLE tablename AUTO_INCREMENT = 66441 
1

ho avuto difficoltà a ottenere questo a lavorare in phpMyAdmin, anche inserendo direttamente la query. Se si esplora la tabella di cui si desidera reimpostare l'indice, quindi fare clic su Operations, si dovrebbe essere in grado di impostare AUTO_INCREMENT direttamente sotto Table options. Quindi fai clic su Vai e sei pronto!

0

Mi piace usare:

ALTER TABLE tablename AUTO_INCREMENT=1 

Da allora il motore sarà più il valore più basso disponibile in ogni modo.