2011-10-20 14 views
5

Tengo alrededor de 1.000 filas, y desea incrementar todas las filas número de identificación en 1. Estaba pensando en algo como esto podría funcionarAjustar la columna MySQL ID 1

UPDATE table

SET id = id+1

Intenté en phpMyAdmin, pero obtuve esto: Entrada duplicada '2' para la clave 'PRIMARY'

Esto tiene mucho sentido, pero ¿cómo puedo evitarlo?

Respuesta

18

¿No es mucho más fácil de ordenar al revés?

update table set id = id +1 order by id desc 

esto funciona para mí ...

+3

1 fresco, yo no sabía que se podía utilizar el orden por sobre una instrucción de actualización – bumperbox

+0

no sabía que podía pedir al revés, esto tiene sentido .. déjame intentarlo – lee

+0

tabla de actualización set id = id +1 esto también funcionará no importa si agrega orden o no –

0

Sigue los pasos:

  1. cajón de una tabla temporal
  2. copia todos los datos en esta tabla temporal con el ID deseado
  3. borrar tabla original
  4. Al final cambiar el nombre de la tabla temporal de tabla original .

Eso es todo.

0

utilizar un número suficientemente grande que suele crear duplicados

update table set id = id + 1000001; 
update table set id = id - 1000000; 

tener en cuenta que esto aumentará la clave de incremento automático si está utilizando una

Cuestiones relacionadas