Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-08-2006
Alexis De la Cr Alexis De la Cr is offline
Miembro
 
Registrado: may 2006
Ubicación: Puebla
Posts: 124
Poder: 19
Alexis De la Cr Va por buen camino
Autoincrement con tablas innodb

Estimados Amigos:

Solicito su ayuda para resolver el siguiente detalle.

Tengo una tabla del Tipo InnoDB, con un campo con indice primario y autoincrementable, el problema es que requiero que el valor del indice primario, comienze en un determinado valor. Cuando utilizaba tablas tipo isam, simplemente modificaba manualmente el valor del campo, desde donde queria que iniciara. Con las tablas InnoDB es mas complejo ya que estas tablas tienen un contador interno, el cual, para acabarla de amolar, se reinicia cuando se reinicia el servidor. Que consejos me dan para poder asegurar el incrmento. Estoy pensando en crear una tabla donde se lleve el valor que debe tomar el campo con indice primario. Bueno le agradecere sus ayuda prestada.

Alexis De la Cruz
Responder Con Cita
  #2  
Antiguo 01-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues no entiendo muy bien cuál es el problema. Acabo de hacer una prueba con una tabla InnoDb y un campo autoincremental. Si hago un INSERT especificando un valor concreto para el campo autoincremental, el registro toma ese valor y partir de eso las subsecuentes inserciones parten de ese valor. Claro está que ese valor concreto debe ser mayor que el mayor valor actual del campo.

// Saludos
Responder Con Cita
  #3  
Antiguo 01-08-2006
Alexis De la Cr Alexis De la Cr is offline
Miembro
 
Registrado: may 2006
Ubicación: Puebla
Posts: 124
Poder: 19
Alexis De la Cr Va por buen camino
Hola roman, gracias por contestar. Mira te explico, realize un porgrama de facturacion que utilizaba tablas myisam. El numero de factura se almacena en un campo con indice primario(yo lo llamo IDFactura al campo) autoincremantable. cuando cree la primera factura, el valor del campo IDFactura era 1, pero necesitaba que comenzara por ejemplo en la factura 3000, asi que manualmente cambie el valor de 1 por el de 3000, y a partir de ahi, los siguientes registros comienzan en 3001, 3002, etc. (ojo, yo no le asigno el valor IDFactura a la factura, la misma tabla me da el valor subsecuente cuando hago el insert)

Ahora (tratando de hacer mas confiable la aplicacion), cambie el tipo de tablas a innodb, por aquello de las transacciones. cuanbdo cree la primera factura, su valor idfactura era 1, pero necesito que el valor de idFactura sea 5000, asi que modifico manualmente el valor de 1 por el de 5000, pero las subsecuentes facturas que se hacen, en ves de comenzar en 5001, siguen su numeracion normal, es decir 2, 3, 4, 5 y de ahi no lo saco. Me imagino que si yo le asigno el valor idfactura manualmente no hay ningun problema, pero el objetivo es que el mismo sistema me arroje automaticamente la numeracion de las faccturas, por eso estoy pensando en una tabla donde me lleve el consecutivo de las facturas, de tal forma que cuando haga el insert lea primero el numero de factura correspondiente. Es correcto este metodo? o hay una forma mas sencilla?

Espero haber podido explicar bien mi problema

Última edición por Alexis De la Cr fecha: 01-08-2006 a las 04:58:31.
Responder Con Cita
  #4  
Antiguo 01-08-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Te explicas perfectamente. Lo que pasa es que no entiendo por que no te está funcionando. Con la instrucción:

Código SQL [-]
alter table tabla auto_increment=5000

los subsecuentes registros deberían ser 5000, 5001, 5002, etc. Así lo acabo de probar. Lo que sí es que no estoy seguro de que un campo autoincremental realmente te sirva ya que en cuestión de facturas muchas veces es requisito que no haya "hoyos" en la numeración y con transacciones, cuando cancelas una, el autoincremental que le correspondía queda sin usar.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tablas InnoDB zvf MySQL 4 18-07-2006 19:52:49
Como crear y configurar tablas Innodb con PHpMyAdmin flystar MySQL 0 05-07-2006 20:36:19
Transacción en tablas InnoDB FunBit MySQL 1 02-01-2006 17:26:58
Como reparar tablas tipo Innodb ctronx MySQL 1 19-08-2004 01:21:51
Problema con integridad referencial en tablas innodb en Mysql 5.0 HombreSigma MySQL 2 21-07-2004 05:16:04


La franja horaria es GMT +2. Ahora son las 00:52:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi