Retroceder   Foros del Web > Programación para sitios web > Bases de Datos

Respuesta
 
Herramientas Desplegado
Antiguo 19-ago-2005, 05:08   #1 (permalink)
juanito1984 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2005
Mensajes: 101
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
juanito1984 está desconectado   Responder Citando
Antiguo 19-ago-2005, 07:08   #2 (permalink)
macedo está en el buen camino
 
Avatar de macedo
 
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 124
Enviar un mensaje por MSN a macedo
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.
macedo está desconectado   Responder Citando
Antiguo 19-ago-2005, 09:46   #3 (permalink)
juanito1984 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2005
Mensajes: 101
OK, es tal cual como lo pones, muchas gracias!!!!
juanito1984 está desconectado   Responder Citando
Antiguo 22-ago-2005, 13:13   #4 (permalink)
juanito1984 ha deshabilitado el karma
 
Fecha de Ingreso: julio-2005
Mensajes: 101
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
juanito1984 está desconectado   Responder Citando
Antiguo 22-ago-2005, 15:30   #5 (permalink)
laureano59 ha deshabilitado el karma
 
Avatar de laureano59
 
Fecha de Ingreso: febrero-2005
Mensajes: 190
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.
__________________
Laureano Melo Medina
http://www.callequinta.com
:arriba:
laureano59 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 09:19.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93