2012-05-25 5 views
12

ho una tabella con ID, questo ID è auto incremento e chiave primaria, la prima volta che ho inserito quella tabella, l'ID inizia da 0, ma dopo aver rimosso tutte le valori da quella tabella e inseriti di nuovo ad esso, l'ID non inizia da 0, ma inizia dall'ultimo valore che aveva ID, che cosa non va, per favore? posso resettare il valore a 0?mysql ID incremento automatico non inizia da 0

+3

Non c'è niente di sbagliato. Questo è un comportamento previsto. Il contachilometri della tua auto parte da 0 ogni volta che vai a fare un giro? –

+0

e quindi cosa posso fare, ho inserito più di 300 volte sui miei tavoli, quando ho visto i compiti a casa dell'insegnante non è una buona cosa mostrargli che i clienti partono da 301, giusto? – LinCR

+1

Se hai creato gli inserti da uno script, puoi rilasciare la tabella e quindi rieseguire lo script. Se gli inserti fossero manuali, non vorresti reinserire, vero? Ad ogni modo, hai 300 client temporanei/di prova che hai eliminato. Se fossi il tuo insegnante, non sarebbe un problema. –

risposta

16

Si può o troncare la tabella utilizzando

TRUNCATE `table` 

Tronca sarà eliminare tutti i dati nella tabella. Notare che l'utilizzo di TRUNCATE non attiverà alcun trigger DELETE come DELETE.

Oppure si può azzerare il conteggio usando

ALTER TABLE `table` AUTO_INCREMENT = 1 

E 'comunque il comportamento previsto. Non fare quest'ultimo se il tavolo non è veramente vuoto.

+0

funziona grazie – LinCR

1

È necessario utilizzare l'istruzione TRUNCATE per riavviare l'auto_increment da 1. È il comportamento normale evitare le frenate.

+0

vuoi darmi un esempio per favore, e ti ringrazio – LinCR

+0

PAY ATTENZIONE che la tabella TRUNCATE distruggerà la tua tabella ... – dAm2K

+0

TABELLA TRUNCATE your_table_name – dAm2K

3

La rimozione di tutti gli elementi in una tabella non influisce sulla chiave primaria. La chiave primaria continuerà ad autoincrementarsi dal suo ultimo valore.

Se si desidera reimpostare la chiave primaria, si può provare a troncare la tabella:

TRUNCATE TABLE yourtable; 

questo cancella tutti gli elementi da YourTable. Se resetta la chiave primaria dipende dal tuo database. Con Mysql dovrebbe funzionare, dato che Mysql cancella e ricrea la tabella su TRUNCATE.

+0

ti ho preso, grazie – LinCR

5

Per inserire una chiave primaria con il valore 0, eseguire prima la seguente richiesta:

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";