iniciar autonumerico en 5000 ?

74 views
Skip to first unread message

Saul Piña Hernandez

unread,
May 10, 2013, 7:26:08 AM5/10/13
to publice...@googlegroups.com
saludos! bueno, tengo esa duda. como puedo iniciar un numero id pero desde el 5000 ?

puedo hacerlo desde el 1 y que siga asi, pero en otra base de datos, requiero que inicie desde el 5000.

he intentado, pero no encuentro la forma. gracias!

Ariel D'Alfeo

unread,
May 10, 2013, 7:29:30 AM5/10/13
to publice...@googlegroups.com
en sql seria 
creater table nombre_tabla (
nombre_campo_autonumerico numeric(18) IDENTITY(5000,1) )
-- 
Ariel D'Alfeo
Córdoba, Argentina

Carlos Miguel FARIAS

unread,
May 10, 2013, 7:30:09 AM5/10/13
to Grupo Fox
en MySQL hay una instrucción que permite cambiar el autonumérico al crear la tabla.
No me arriesgaria a cambiarlo una vez creada con datos dentro.
Saludos: Miguel, La Pampa (RA)

Luis Maria Guayan

unread,
May 10, 2013, 9:08:12 AM5/10/13
to publice...@googlegroups.com
En VFP puedes configurar el valor inicial (o proximo valor) y el incremento.

Abre tu tabla en exclusivo y ejecuta MODIFY STRUCTURE. Se abrira una ventana que en la parte inferior derecha puedes configurar los valores autoincrementales

Lo puedes hacer también por comandos, mira la ayuda del comando ALTER TABLE ...
 
 

Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Saul Piña Hernandez

unread,
May 10, 2013, 10:33:02 AM5/10/13
to publice...@googlegroups.com
Por ejemplo: tengo esto para crear el autonumerico desde el numero 1.

lcStringConn="Driver={MySQL ODBC 5.1 Driver}"+;
";Server="+lcServer+;
";Database="+lcDatabase+;
";Uid="+lcUser+;
";Pwd="+lcPassWord
***Evitar que aparezca la ventana de login
SQLSETPROP(0,"DispLogin",3)
lHandle=SQLSTRINGCONNECT(lcStringConn) &&& ERROR &&&
IF lHandle > 0

*WAIT WINDOW "conectado"

   sqlexec(lhandle,"use "+cTabla)
        if (SQLEXEC(lhandle,"select *from "+cTabla+" ORDER BY folio ASC","c4"))>0 then

        SELECT c4
        GO bott
        n1=c4.folio    ******Aquí obtengo el primer numero, o en su caso el utilimo numero que se haya creado o capturado
        thisform.tt1.Value=n1+1    ****Aquí envío el ultimo numero que tenga registrada la tabla (por ejemplo si está vacia, el n1=0 y el "thisform.tt1.value" seria igual a  0+1=1


Ahora, lo que se me ocurre es crear manualmente en la tabla un registro con el numero 5000, pero el cliente me podría decir a quien pertenece el numero 5000??  me gustaria mejor que lo tomara desde cero.

gracias!

Luis Maria Guayan

unread,
May 10, 2013, 10:42:35 AM5/10/13
to publice...@googlegroups.com
Salu, veo que no sos claro con tus consultas. ¿Que es lo que necesitas? ¿Autoincrementales o Consecutivos para tus tablas?

La forma que obtienes el último valor no es la mas adecuada y óptima, deberías hacer un MAX(Folio), pero esto si deseas consecutivos. Si deseas autoincrementales no deberías hacer tú el trabajo de incrementar el valor, eso es propio del motor de bases de datos que estés utilizando.


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Saul Piña Hernandez

unread,
May 10, 2013, 10:48:31 AM5/10/13
to publice...@googlegroups.com
Perdon, profe... tiene usted razón: lo que deseo es numeros consecutivos...  no sabia, que podia usar MAX(), dejeme echar un vistazo a esa funcion...gracias Luis Ma!
Reply all
Reply to author
Forward
0 new messages