Campo autoincremental

Tengo muchas tablas (creadas con SQL DB2) con campos tipo ID que se actualizan por programa. Ahora los quiero convertir a AUTOINCREMENTAL. ¿Hay alguna manera de hacerlo sin tener que borrar el campo y crearlo otra vez?

1 respuesta

Respuesta
1
Alvarado400,
Existen tres formas de generar valores (números) únicos en una tabla. Para eso lee la siguiente página:
http://www-106.ibm.com/developerworks/db2/library/techarticle/0205pilaka/0205pilaka2.html
Si ya creaste la tabla y posee datos, y una de las columnas la llenas usando un max()+1 (vbalor único e incremental), te recomiendo crear un sequence, ya que de otra forma deberías hacer un alter de la tabla y por consiguiente perder los datos.
Supongamos que insertaste tres registros y la columna ID posee los valores 1, 2 y 3; entonces deberías crear un sequence con el siguiente código:
CREATE SEQUENCE myseq
As integer
START WITH 4
INCREMENT BY 1
No minvalue
No maxvalue
NO CYCLE
CACHE 10
Order
En tu programa cuando insertes debe utilizar max()+1 deberias utilizar SELECT NEXTVAL FOR myseq
Te recomiendo crear un SEQUENCE para cada tabla, ya que así independizas los datos de cada una.
Cualquier cosa, no dudes en avisarme.
Ponele puntaje a la respuesta, así puedo seguir contestando otras.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas