![]() |
Problema campo auto-incrementable tengo un problema trabajando con Oracle9i: no me acepta los campos autoincrementables!!!! Esta tabla (por muy sencilla que es) no me la acepta porq tiene un campo autoincrementable: create table curso ( codigo varchar2(4) auto_increment); Siempre me da el siguiente error: create table curso ( * ERROR en línea 1: ORA-00922: falta la opción o no es válida ¿A alguien le ha ocurrido lo mismo alguna vez?¿Alguien sabe la solucion?Gracias |
Hola juanito1984. Creo que el problema es que estás intentando hacer autoincremetal con un varchar y el autoincremental es integer. De todos modos creo que oracle no soporta el autoincremental como tal (no estoy muy seguro pero yo no lo he visto). Tienes que crear una secuencia. Algo más o menos así: create sequence Auto_Incr start with 1 increment by 1 nomaxvalue; Y despues en el insert pones algo así: insert into curso values(Auto_Incr.nextval, valor1, ... , valor2 ); Espero que te sirva de algo. Saludos. |
OK, es tal cual como lo pones, muchas gracias!!!! |
Hay un problema con la secuencia: cada vez que te desconectas de la BD y vuelves a conectarte la secuencia aumenta y deja espacios en blanco. Es decir si va por el 3, al desconectarte y volverte a conectar empieza por el 21,22,23, y te desconectas y vuelves a conectarte empieza por el 41,42,43,... Entonces deja muchos numeros sin utilizar. ¿Alguien sabe solucionarlo? Gracias |
CASI NUNCA UTILIZO LOS AUTOINCREMENTABLES DE LOS MOTORES DE BASES DE DATOS. LO QUE HAGO ES HACER UNA CONSULTA SELECCIONANDO EL MAXIMO VALOR +1 DEL CAMPO QUE QUIERO INCREMENTAR Y ESTO LO MANDO A UNA VARIABLE QUE ES LA QUE LUEWGO INSERTO EN EL INSERT DE MI CONSULTA. ALGO ASÍ: SELECT MAX(id_factura + 1) As autonumerico FROM facturacion entonces autonumerico me guardo el consecutivo que sigue. ESTO ME PERMITE MANEJAR MEJOR LOS CONSECUTIVOS YA QUE YO DESIDO DE MANERA PRACTICA EN QUE NUMERO LOS INICIO. |
| La zona horaria es GMT -6. Ahora son las 19:57. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.