Hola anrodse:
Tu puedes enviar en cualquier momento el ID que quieres colocar... si no envías el parámetro entonces se genera de manera automática. Observa este script:
Código MySQL:
Ver originalQuery OK, 0 rows affected (0.09 sec)
mysql> #ENVIANDO NULL
Query OK, 1 row affected (0.03 sec)
+----+-------------+
| id | descripcion |
+----+-------------+
| 1 | uno |
+----+-------------+
mysql> #ENVIANDO SOLO LOS CAMPOS NECESARIOS
Query OK, 1 row affected (0.05 sec)
+----+-------------+
| id | descripcion |
+----+-------------+
| 1 | uno |
| 2 | dos |
+----+-------------+
mysql> #ASIGNANDO EL ID DE MANERA DIRECTA
Query OK, 1 row affected (0.01 sec)
+----+-------------+
| id | descripcion |
+----+-------------+
| 1 | uno |
| 2 | dos |
| 4 | tres |
+----+-------------+
Observa que en los dos primeros casos no se envía un valor para el campo ID, por lo tanto se asigna de manera automática. En el tercer caso SI SE ENVÍA UN VALOR DE ID DIRECTO, Sin embargo creo que te puedes dar cuenta del riesgo que corres al hacerlo de esta manera:
Código MySQL:
Ver originalERROR
1062 (23000): Duplicate entry
'4' for
key 'PRIMARY'+----+-------------+
| id | descripcion |
+----+-------------+
| 1 | uno |
| 2 | dos |
| 4 | tres |
+----+-------------+
Si el id que quieres asignar YA EXISTE en la tabla entonces tendrás un error de llave duplicada. Aquí se hace entonces necesario que nos dijeras
¿QUÉ UTILIDAD LE VEZ EN ASIGNAR LA LLAVE DE MANERA DIRECTA Y NO DE MANERA AUTOMÁTICA?.
Espero sinceramente que no me vayas a decir que para evitar "saltos" en los id's cuando se elimina alguna entrada
.
Saludos
Leo.