Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema campo auto-incrementable

Estas en el tema de Problema campo auto-incrementable en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 19/08/2005, 05:08
 
Fecha de Ingreso: julio-2005
Mensajes: 102
Antigüedad: 18 años, 9 meses
Puntos: 0
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
  #2 (permalink)  
Antiguo 19/08/2005, 07:08
Avatar de macedo  
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 124
Antigüedad: 22 años, 3 meses
Puntos: 0
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.
  #3 (permalink)  
Antiguo 19/08/2005, 09:46
 
Fecha de Ingreso: julio-2005
Mensajes: 102
Antigüedad: 18 años, 9 meses
Puntos: 0
OK, es tal cual como lo pones, muchas gracias!!!!
  #4 (permalink)  
Antiguo 22/08/2005, 13:13
 
Fecha de Ingreso: julio-2005
Mensajes: 102
Antigüedad: 18 años, 9 meses
Puntos: 0
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
  #5 (permalink)  
Antiguo 22/08/2005, 15:30
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 395
Antigüedad: 19 años, 2 meses
Puntos: 1
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.
__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:25.