por ejemplo tengo 20 registros en una base de datos, borro el numero 12, la tabla tiene entonces 19 registros, añado uno nuevo, entonces el nuevo registro tiene id=21
hay alguna forma d k se normalizen los id? k el id=21 sea id=20
gracias

| |||
Hola, Con autonumericos, no. Ademas, lo que sugieres es totalmente ilogico. Si tu borras el registro con id 12, el siguiente que añadas no puede ser el id 20, porque este sigue existiendo. Entonces, pensarias tu, pues que el nuevo coga el id 12. Entonces, si en otra tabla habia un registro que enlazaba con el registro borrado a traves del id, en ese caso el nuevo registro quedara vinculado a ese registro de la otra tabla. En este caso, no seria el borrado de uno y la insercion de uno nuevo, sino la modificacion del registro con id 12. Con lo cual es totalmente logico que el nuevo registro sea el id 21. Saludos.
__________________ Josemi Aprendiz de mucho, maestro de poco. |
| ||||
La unica forma de "recuperar" los ids autonumericos (a partir del id más grande existente en la tabla) es exportar la tabla a un .sql y volverla a importar.
__________________ M a l d i t o F r i k i |
| ||||
hombre.... no se... pero yo cuando borro los 3 ultimos... ejemplo: 17,18,19.... cuando hago unos nuevos empieza por el 17,18,19... a mi me funciona asi... ID autoincrement BigInt Not Null. Para hacer lo que dices.... lo mejor creo yo es que no sea ID autoincrement... que sea un registro normal, tipo numerico... y lo autoincrementes tu con otro Script, asi podrias scanear los registros vacios, y añadirlos automaticamente... yo pienso que toda esta faena no merece la pena... pq?, que mas da el numero que tengan, o si salta alguno... a mi personalmente me gusta mas con numeros altos, pero bueno...sobre gustos no hay nada escrito....;) |
| |||
Los campos autonumericos se usa para eso mismo .. para que sean "Unicos" entre otras cosas. He de ahí que el "contador" sigua adelante para mantener una de las principales reglas de toda Base de datos relacional que es la "integridad referencial" (como ya explicó josemi). Si a la hora de presentar tus X registros de esa tabla quieres "numerarlos" de 1 a N registros que tegas .. Usa una simple variable contador ($contador++; ) ... pero internamente (cara a generar tus nose.php?id=elquetoque) sigue usando los ID de ese campo autoincremental. Un saludo, pd: Esta pregunta creo que mas de uno no la hemos hecho (yo recuerdo habermela hecho) .. Pero como te comento, la solución "visual" es usar un contador y seguir trabajando como debe ser.
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |