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.
Consulta sobre MySql y autoincrement
- JoseAlvarez
- Posts: 810
- Joined: Sun Nov 09, 2014 5:01 pm
Consulta sobre MySql y autoincrement
"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.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
- 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
Creo que es lo que necesitas
http://forums.fivetechsupport.com/viewtopic.php?f=6&t=38739&p=231087&hilit=armando+auto&sid=5db78336e37be21038cbb3b107caca0a&sid=cf20c46ba5b844a354872609b9349f82#p231087
http://forums.fivetechsupport.com/viewtopic.php?f=6&t=38739&p=231087&hilit=armando+auto&sid=5db78336e37be21038cbb3b107caca0a&sid=cf20c46ba5b844a354872609b9349f82#p231087
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) ]
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) ]
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Consulta sobre MySql y autoincrement
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.
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
G. N. Rao.
Hyderabad, India
- JoseAlvarez
- Posts: 810
- Joined: Sun Nov 09, 2014 5:01 pm
Re: Consulta sobre MySql y autoincrement
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:
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.
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.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.
- jrestojeda
- Posts: 601
- Joined: Wed Jul 04, 2007 3:51 pm
- Location: Buenos Aires - Argentina
Re: Consulta sobre MySql y autoincrement
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:
Espero te sirva la idea.
Saludos,
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
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
- JoseAlvarez
- Posts: 810
- Joined: Sun Nov 09, 2014 5:01 pm
Re: Consulta sobre MySql y autoincrement
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.
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.
Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin
Carora, Estado Lara, Venezuela.