Page 1 of 1
Consulta sobre MySql y autoincrement
Posted: Thu Sep 02, 2021 6:58 pm
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.
Re: Consulta sobre MySql y autoincrement
Posted: Thu Sep 02, 2021 9:35 pm
by leandro
Re: Consulta sobre MySql y autoincrement
Posted: Fri Sep 03, 2021 5:04 am
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.
Re: Consulta sobre MySql y autoincrement
Posted: Fri Sep 03, 2021 5:20 am
by anserkk
Re: Consulta sobre MySql y autoincrement
Posted: Wed Sep 08, 2021 2:44 am
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.
Re: Consulta sobre MySql y autoincrement
Posted: Wed Sep 08, 2021 10:08 pm
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,
Re: Consulta sobre MySql y autoincrement
Posted: Wed Sep 08, 2021 10:40 pm
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.