Consulta sobre MySql y autoincrement

Post Reply
User avatar
JoseAlvarez
Posts: 810
Joined: Sun Nov 09, 2014 5:01 pm

Consulta sobre MySql y autoincrement

Post by JoseAlvarez »

Hola a todos amigos.

Mi consulta es sobre mysql y muy sencilla:

¿Habrá alguna manera de aumentar el valor de un campo autoincremental SIN tener que hacer un insert ?

La unica manera que he conseguido es insertando y eliminando de seguido el registro nuevo, pero no me gusta mucho eso.

Quedo al pendiente de sus respuestas.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
leandro
Posts: 1744
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 34 times
Been thanked: 10 times
Contact:

Re: Consulta sobre MySql y autoincrement

Post by leandro »

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: Consulta sobre MySql y autoincrement

Post by nageswaragunupudi »

Use the new value in the next insert.

Example:
Autoinc field name is `ID` and the present value is 89.
You want to use 101 onwards from the next record onwards.
Solution:
When you insert the next record:
INSERT INTO mytable ID,..... VALUES ( 101, .... )

New record will be inserted with value of 101 for ID and subsequent inserts will be incremented from 101 onwards.
Hope I am clear.
Regards

G. N. Rao.
Hyderabad, India
User avatar
anserkk
Posts: 1333
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India
Has thanked: 2 times

Re: Consulta sobre MySql y autoincrement

Post by anserkk »

Another way is

Code: Select all | Expand

ALTER TABLE tblname AUTO_INCREMENT = 52;
User avatar
JoseAlvarez
Posts: 810
Joined: Sun Nov 09, 2014 5:01 pm

Re: Consulta sobre MySql y autoincrement

Post by JoseAlvarez »

Hola a todos amigos,

Gracias por la colaboracion en sus respuestas.

Pero creo que no me explique bien sobre lo que quiero.

Lo que me gustaria hacer (si se puede) es que un campo autoincrement se vaya incrementando SIN HACER UN INSERT.

Quiero llevar un contador, y por los momentos lo hago asi:

Code: Select all | Expand

      cTabla:= _cPrefijo+'_docventatemp'

      cQuery:=''
      cQuery:="SELECT * FROM "+ cTabla  + " FOR UPDATE; "
      oQuery:= _oSqlConex:Query( cQuery )

      nNumeroTemporal:=oQuery:numerotemp_documento+1

      cQuery:=''
      cQuery:="Update "+cTabla+" Set "
      cQuery +="numerotemp_documento:="+alltrim(str(nNumeroTemporal))+"; "
      _oSqlConex:Execute( cQuery    )
 


Es una tabla de un solo registro. Asi me funciona perfecto, pero por esos caprichos de nosotros los programadores, me gustaria con un campo autoincremental.

Por eso quisiera saber si hay alguna manera de hacerlo sin necesidad de insertar un registro cada vez que necesite un nuevo numero, pero al parecer no se puede.

Para que incremente hay que insertar obligatoriamente una nueva fila a la tabla.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
jrestojeda
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Consulta sobre MySql y autoincrement

Post by jrestojeda »

Hola,
A mi se me ocurre algo sin tener que hacer ningún query previo e incrementar en una variable.
No se si entendí tu idea, pero esto debería funcionar:

Code: Select all | Expand

cQuery:="UPDATE TUTABLA SET CAMPO=CAMPO + 1 " // No pongo ningún Where ya que comentas que es solo un registro.
 


Espero te sirva la idea.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
JoseAlvarez
Posts: 810
Joined: Sun Nov 09, 2014 5:01 pm

Re: Consulta sobre MySql y autoincrement

Post by JoseAlvarez »

Saludos colega...

Gracias por tu colaboracion.

En mi caso, hago un SELECT previo porque alli uso la clausula FOR UPDATE que es la que me va a BLOQUEAR el registro y no permitir que nadie mas accese la tabla al mismo tiempo y pueda duplicarse el valor del consecutivo.

Sin embargo, con tu idea puedo ahorrarme un par de lineas de codigo.

Gracias amigo.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
Post Reply