2011-01-20 14 views
5

Ho una tabella con una colonna autoincrementante. Devo impostare una delle righe su 1000 e non toccarla più, ma ora che l'ho impostata su 1000, l'incremento automatico continua a partire da 1001 e si rifiuta di iniziare a 1. C'è un modo per aggirare questo?Ripristina MySQL auto_increment quando esiste già un numero elevato?

+0

Come su impostandolo a 0, invece? :) –

+0

Se * poteste * far funzionare tutto ciò, cosa vi aspettereste che accada una volta che l'auto-incremento raggiungerà ancora 1000? –

risposta

3

Risposta semplice e breve: non è possibile farlo.

Se possibile, cosa accadrebbe se avvii l'incremento automatico a 1 e inserisci 1000 righe? L'ultimo non può essere inserito a causa della "chiave duplicata" - errore.

Se è necessario avere una voce predefinded, con un ID che non cambia mai ed è facile da ricordare, perché non si usa 0 per quello? Oppure, se hai davvero bisogno di usare 1000, qual è il problema con l'avvio delle altre colonne a 1001?

+0

Non dovrebbe, ma non può. Vedi la mia risposta. –

+0

questo è stato unjreal editing della mia risposta, ho scritto "can not" - e ora ho rolled quella modifica – oezi

7

Non è possibile:

Per modificare il valore del contatore AUTO_INCREMENT da usare per nuove righe, fare questo:

ALTER TABLE t2 AUTO_INCREMENT = valore;

Non è possibile reimpostare il contatore su un valore inferiore o uguale a qualsiasi valore di già utilizzato. Per MyISAM, se il valore è inferiore o uguale al valore massimo attualmente nella colonna AUTO_INCREMENT, il valore è ripristinato al massimo corrente più uno. Per InnoDB, se il valore corrente è inferiore a , il valore massimo corrente nella colonna non si verifica alcun errore e il valore della sequenza corrente non viene modificato.

http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

0

È possibile utilizzare MS Access che puntano a MySQL come tabella esterna, ed è possibile modificare il valore del campo tabella di incremento automatico da MS Access tramite copia incolla da Excel (prima, è necessario organizzare la valore di incremento automatico in Excel).

1

Supponendo di avere nessun altro ID fila con 1000, è possibile inserire la riga alla parte inferiore della tabella, allora si può semplicemente utilizzare il comando UPDATE:

UPDATE table.column SET id = 1000 WHERE id = current_id; 

Supponendo ID è la vostra colonna a incremento automatico . E current_id dovrebbe essere sostituito con l'id in cui è inserita la riga.

0

Si potrebbe utilizzare le seguenti istruzioni:

UPDATE tbl SET id=1000 WHERE id=current_id; 
ALTER TABLE tbl AUTO_INCREMENT=1001; 
Problemi correlati