Valor de ID de incremento automático
-
20-08-2019 - |
Pregunta
Tengo una base de datos HSQLDB con un ID generado y quiero que los valores de incremento automático siempre sean superiores a 100,000. ¿Es esto posible con HSQLDB? ¿Es esto posible con cualquier base de datos?
Solución
De acuerdo con la Documentación HSQL :
Desde 1.7.2, la sintaxis estándar de SQL se usa por defecto, lo que permite valor inicial a especificar. los la forma admitida es (INTEGER GENERADO POR DEFECTO COMO IDENTIDAD (INICIO CON n, [INCREMENTO POR m]) CLAVE PRIMARIA, ...) También se ha agregado soporte para BIGINT columnas de identidad. Como resultado, una columna IDENTIDAD es simplemente un Columna INTEGER o BIGINT con su valor predeterminado generado por una secuencia generador.
...
El siguiente valor de IDENTIDAD que se utilizará puede establecerse con el
ALTER TABLE <table name> ALTER COLUMN <column name> RESTART WITH <new value>;
Otros consejos
Aquí se explica cómo hacerlo en HSQLDB :
El siguiente valor de IDENTIDAD que se utilizará se puede cambiar con la siguiente instrucción. Tenga en cuenta que esta declaración no se utiliza en el funcionamiento normal y es solo para fines especiales, por ejemplo, restablecer el generador de identidad:
ALTER TABLE ALTER COLUMN <column name> RESTART WITH <new value>;
Hasta donde yo sé, todas las bases de datos SQL le permiten establecer un valor de inicialización para los campos de incremento automático.
Actualización: Aquí hay una lista de identidad / auto implementaciones de aumento en las principales bases de datos SQL .
Es posible con SQL Server. Al definir una columna de número automático, puede definir el número inicial y el incremento:
IDENTITY(100000, 1)
Sé que es posible con SQL Server, e imagino que es posible con otros.
Con SQL Server puede establecer el valor inicial de la columna de ID (número inicial) y el valor de incremento.
Puede hacerlo con bases de datos que usan secuencias, como Oracle y PostgreSQL. Usted especifica un valor de inicio cuando crea la secuencia.
Esto sugiere que también puede hacerlo con HSQL.
No estoy seguro acerca de HSQL, pero en MS SQL sí es posible. Establezca la ID en incremento automático y establezca el valor de inicialización en 100,000.