Consulta sobre MySql y autoincrement

Consulta sobre MySql y autoincrement

Postby JoseAlvarez » Thu Sep 02, 2021 6: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.
User avatar
JoseAlvarez
 
Posts: 805
Joined: Sun Nov 09, 2014 5:01 pm

Re: Consulta sobre MySql y autoincrement

Postby leandro » Thu Sep 02, 2021 9:35 pm

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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1688
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Consulta sobre MySql y autoincrement

Postby nageswaragunupudi » Fri Sep 03, 2021 5: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
User avatar
nageswaragunupudi
 
Posts: 10690
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Consulta sobre MySql y autoincrement

Postby anserkk » Fri Sep 03, 2021 5:20 am

Another way is

Code: Select all  Expand view  RUN
ALTER TABLE tblname AUTO_INCREMENT = 52;
User avatar
anserkk
 
Posts: 1333
Joined: Fri Jun 13, 2008 11:04 am
Location: Kochi, India

Re: Consulta sobre MySql y autoincrement

Postby JoseAlvarez » Wed Sep 08, 2021 2: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: Select all  Expand view  RUN
      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
JoseAlvarez
 
Posts: 805
Joined: Sun Nov 09, 2014 5:01 pm

Re: Consulta sobre MySql y autoincrement

Postby jrestojeda » 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: Select all  Expand view  RUN
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
jrestojeda
 
Posts: 601
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Consulta sobre MySql y autoincrement

Postby JoseAlvarez » 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.
User avatar
JoseAlvarez
 
Posts: 805
Joined: Sun Nov 09, 2014 5:01 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 68 guests