Cómo conocer el siguiente folio?
Cómo conocer el siguiente folio?
Hola foreros:
Tengo una tabla con MySQL que tiene un campo AUTO_INCREMENTAL, la pregunta es
cómo puedo saber cual es el siguiente número que hay en ese campo AUTO_INCREMENTAL?
Tengo una solución que abre el SCHEMA y funciona bien, la única pega es que se demora
varios segundos, diría yo más de lo necesario.
Alguna idea?
Saludos
Tengo una tabla con MySQL que tiene un campo AUTO_INCREMENTAL, la pregunta es
cómo puedo saber cual es el siguiente número que hay en ese campo AUTO_INCREMENTAL?
Tengo una solución que abre el SCHEMA y funciona bien, la única pega es que se demora
varios segundos, diría yo más de lo necesario.
Alguna idea?
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- armando.lagunas
- Posts: 340
- Joined: Mon Oct 05, 2009 3:35 pm
- Location: Curico-Chile
- Contact:
Re: Cómo conocer el siguiente folio?
Hola Armando
yo lo usaba asi:
fue lo único que encontré para determinar cual era el siguiente incremental de es tabla, si hay otra opción mejor, favor que la publique.
saludos
yo lo usaba asi:
Code: Select all
nHis := oSql:QueryData("SELECT COUNT(*) FROM TablaHistorial")
cHis := TRANSFORM(VAL(nHis)+1,"99999999")
saludos
Re: Cómo conocer el siguiente folio?
También podría ser:
Saludos
Code: Select all
nUltimo := oCn : QueryResult( "select max( id ) from mitabla" )
nUltimo++
Re: Cómo conocer el siguiente folio?
Otra forma
Code: Select all
oVar:= "SHOW TABLE STATUS LIKE 'tutabla';"
oRs := FW_OPENRECORDSET(oCnx,oVar,adLockOptimistic,adOpenKeyset)
nRegistros := oRs:RecordCount()
If nRegistros#0
nSiguiente := oRs:Fields( "Auto_increment" ):Value
Endif
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
Re: Cómo conocer el siguiente folio?
Muchachos:
Muchas gracias por sus aportes, pruebo y aviso.
Saludos
Muchas gracias por sus aportes, pruebo y aviso.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Cómo conocer el siguiente folio?
Muchachos:
Antes que nada muchas gracias por sus aportes, aquí los resultados:
La sugerencia de mi Tocayo Lagunas, la función COUNT(*) nos deja el
número de registros que hay en la tabla, no considera los eliminados,
por ejemplo el AUTO_INCREMENTAL indica 43, COUNT(*) nos indica
41, físicamente hay 42 uno lo elimine, por eso quedan 42.
La sugerencia de Horácio MAX(ID), con los mismo datos del ejemplo
anterior, nos muestra el ID máximo que hay en la tabla 42, pero si
eliminamos el último registro añadido, el 42, MAX(ID) muestra 41.
La sugerencia de Leandro (Me doy cuenta que te has aplicado bien),
aunque hay registros eliminados sean los que sean me muestra 43
que es el número correcto.
Saludos foreros y gracias nuevamente por sus aportes
Antes que nada muchas gracias por sus aportes, aquí los resultados:
La sugerencia de mi Tocayo Lagunas, la función COUNT(*) nos deja el
número de registros que hay en la tabla, no considera los eliminados,
por ejemplo el AUTO_INCREMENTAL indica 43, COUNT(*) nos indica
41, físicamente hay 42 uno lo elimine, por eso quedan 42.
La sugerencia de Horácio MAX(ID), con los mismo datos del ejemplo
anterior, nos muestra el ID máximo que hay en la tabla 42, pero si
eliminamos el último registro añadido, el 42, MAX(ID) muestra 41.
La sugerencia de Leandro (Me doy cuenta que te has aplicado bien),
aunque hay registros eliminados sean los que sean me muestra 43
que es el número correcto.
Saludos foreros y gracias nuevamente por sus aportes
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- carlos vargas
- Posts: 1421
- Joined: Tue Oct 11, 2005 5:01 pm
- Location: Nicaragua
Re: Cómo conocer el siguiente folio?
yo tengo este procedure en my db de mysql tavez tu pueda servir algo.
Code: Select all
CREATE DEFINER=`secure`@`%` TRIGGER `InsertInspection` BEFORE INSERT ON `inspection` FOR EACH ROW BEGIN
set @auto_id := ( SELECT AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME='inspection'
AND TABLE_SCHEMA=DATABASE() );
set new.id_inspection = @auto_id;
END
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
Carlos Vargas
Desde Managua, Nicaragua (CA)
Re: Cómo conocer el siguiente folio?
Carlos:
Muchas gracias por el aporte, lo tengo como sugieres y funciona de 100, el problema
es que es lento, varios segundos más de lo necesario, pero el tiempo suficiente para
que el usuario desespere y empiece a oprimir teclas a diestra y siniestra pensando
que el computador se "atoro".
Con la sugerencia de Leandro problema superado.
Saludos
Muchas gracias por el aporte, lo tengo como sugieres y funciona de 100, el problema
es que es lento, varios segundos más de lo necesario, pero el tiempo suficiente para
que el usuario desespere y empiece a oprimir teclas a diestra y siniestra pensando
que el computador se "atoro".
Code: Select all
oRsJes:Source := "SELECT " +;
"AUTO_INCREMENT " +;
"FROM " +;
"INFORMATION_SCHEMA.TABLES " +;
"WHERE " +;
"TABLE_SCHEMA = 'SiaJaem' " +;
"AND " +;
"TABLE_NAME = 'Viajes'"
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Cómo conocer el siguiente folio?
Armando. como estas, prueba esto
aCampos:={ 'cod_interno'ion'' }
aValues:={ CodControl }
xServer:Insert("ventadiaria", aCampos, aValues )
oQryId := xServer:Query( "SELECT last_insert_id() AS nId")
nReserva := oQryId:nId
saludos
aCampos:={ 'cod_interno'ion'' }
aValues:={ CodControl }
xServer:Insert("ventadiaria", aCampos, aValues )
oQryId := xServer:Query( "SELECT last_insert_id() AS nId")
nReserva := oQryId:nId
saludos
Re: Cómo conocer el siguiente folio?
Hola José:
Saludos al crío, también es una buena solución, aunque con la sugerencia
de Leandro solucione el problema.
Muchas gracias, Saludos
Saludos al crío, también es una buena solución, aunque con la sugerencia
de Leandro solucione el problema.
Muchas gracias, Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero