Utilizo SQL Server y cuando creo una nueva tabla hago un campo específico que incrementa automáticamente la clave primaria . El problema es que algunas personas me dijeron que convertir el campo en un incremento automático para la clave primaria significa que al eliminar cualquier registro (no les importa el número de campo de incremento automático) el campo aumenta en algún momento, si el tipo de campo es entero, por ejemplo, el rango del número entero se consumirá por completo y tendré problemas. Entonces me dicen que no use esta función más.Función de incremento automático en la base de datos
La mejor solución es hacer esto a través del código obteniendo el máximo de mi clave principal, y si el valor no existe, el máximo será 1
, de lo contrario max + 1
.
¿Alguna pregunta sobre este problema? ¿Puedo usar la función de incremento automático?
Quiero también conocer los casos que no sean preferible usar incremento automático ..y las alternativas ...
nota :: esta pregunta no es general específica para cualquier DBMS, quiero saber es esto cierto también para DBMS como ORACLE, Mysql, INFORMIX, ....
Muchas gracias.
Bueno, ¿cuál es el problema si hay "agujeros" en el orden de los números PK? ¿A quien le importa? – zerkms
vaya para UniqueIdentifier :) –
@Serkan: este es un problema fantasma; consulte los argumentos a continuación para ver por qué el problema no existe. 'UniqueIdentifier' ciertamente no debe usarse con esto como motivación. Es un valor de 16 bytes que consumirá 4 veces más espacio que un 'int', que es aceptable en la gran mayoría de los casos, y el doble que un' bigint' que casi siempre será aceptable, pero generalmente no es necesario –