FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Consulta sobre MySql y autoincrement
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Consulta sobre MySql y autoincrement
Posted: Thu Sep 02, 2021 06:58 PM

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.
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Consulta sobre MySql y autoincrement
Posted: Thu Sep 02, 2021 09:35 PM
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 25.01 ] [ xHarbour 64 bits) ]
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Consulta sobre MySql y autoincrement
Posted: Fri Sep 03, 2021 05:04 AM

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
Posts: 1335
Joined: Fri Jun 13, 2008 11:04 AM
Re: Consulta sobre MySql y autoincrement
Posted: Fri Sep 03, 2021 05:20 AM
Another way is

Code (fw): Select all Collapse
ALTER TABLE tblname AUTO_INCREMENT = 52;
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Consulta sobre MySql y autoincrement
Posted: Wed Sep 08, 2021 02:44 AM
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 (fw): Select all Collapse
       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.
Posts: 601
Joined: Wed Jul 04, 2007 03:51 PM
Re: Consulta sobre MySql y autoincrement
Posted: Wed Sep 08, 2021 10:08 PM
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 (fw): Select all Collapse
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
Posts: 851
Joined: Sun Nov 09, 2014 05:01 PM
Re: Consulta sobre MySql y autoincrement
Posted: Wed Sep 08, 2021 10:40 PM

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.

Continue the discussion