Ver Mensaje Individual
  #2 (permalink)  
Antiguo 07/08/2012, 08:32
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Seguir el Auto Increment MySQL

Hola vBArgentina:

Por defecto, cuando creas un campo autoincremental en una tabla, este comienza a contar desde 1, pero tu podrías alterar este valor en cualquier momento. hay varias formas para hacerlo, checa este script. Supongamos que creamos una tabla con un campo autoincremental e insertamos dos registros.

Código MySQL:
Ver original
  1. mysql> CREATE TABLE tabla(
  2.     -> descripcion VARCHAR(100),
  3.     -> PRIMARY KEY (id));
  4. Query OK, 0 rows affected (0.25 sec)
  5.  
  6. mysql> INSERT INTO tabla VALUES (NULL, 'uno'), (NULL, 'dos');
  7. Query OK, 2 rows affected (0.06 sec)
  8. Records: 2  Duplicates: 0  Warnings: 0
  9.  
  10. mysql> SELECT * FROM tabla;
  11. +----+-------------+
  12. | id | descripcion |
  13. +----+-------------+
  14. |  1 | uno         |
  15. |  2 | dos         |
  16. +----+-------------+
  17. 2 rows in set (0.00 sec)

Observa que automáticamente se asignaron los id's 1 y 2 a los registros, pues en el insert estoy enviando un NULL como valor, sin embargo también podría hacer un INSERT enviándole un valor fijo (cuidando que no exista en la tabla)

Código MySQL:
Ver original
  1. mysql> INSERT INTO tabla VALUES (145, 'ciento cuarenta y cinco');
  2. Query OK, 1 row affected (0.03 sec)
  3.  
  4. mysql> SELECT * FROM tabla;
  5. +-----+-------------------------+
  6. | id  | descripcion             |
  7. +-----+-------------------------+
  8. |   1 | uno                     |
  9. |   2 | dos                     |
  10. | 145 | ciento cuarenta y cinco |
  11. +-----+-------------------------+
  12. 3 rows in set (0.00 sec)

Observa que si después de hacer esto hago un INSERT enviando un NULL asigna el siguiente consecutivo (es decir 146, no 3)

Código MySQL:
Ver original
  1. mysql> INSERT INTO tabla VALUES (NULL, 'ciento cuarenta y seis');
  2. Query OK, 1 row affected (0.07 sec)
  3.  
  4. mysql> SELECT * FROM tabla;
  5. +-----+-------------------------+
  6. | id  | descripcion             |
  7. +-----+-------------------------+
  8. |   1 | uno                     |
  9. |   2 | dos                     |
  10. | 145 | ciento cuarenta y cinco |
  11. | 146 | ciento cuarenta y seis  |
  12. +-----+-------------------------+
  13. 4 rows in set (0.00 sec)

Finalmente, tú puedes hacer uso de la función ALTER TABLE para cambiar el valor de inicio del ALTER TABLE, así:

Código MySQL:
Ver original
  1. mysql> ALTER TABLE tabla AUTO_INCREMENT 200;
  2. Query OK, 4 rows affected (0.51 sec)
  3. Records: 4  Duplicates: 0  Warnings: 0
  4.  
  5. mysql> INSERT INTO tabla VALUES (NULL, 'doscientos');
  6. Query OK, 1 row affected (0.08 sec)
  7.  
  8. mysql> SELECT * FROM tabla;
  9. +-----+-------------------------+
  10. | id  | descripcion             |
  11. +-----+-------------------------+
  12. |   1 | uno                     |
  13. |   2 | dos                     |
  14. | 145 | ciento cuarenta y cinco |
  15. | 146 | ciento cuarenta y seis  |
  16. | 200 | doscientos              |
  17. +-----+-------------------------+
  18. 5 rows in set (0.00 sec)

Ojalá que esto te pueda servir para lo que quieres hacer.

Saludos
Leo.