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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top