Article View: es.comp.os.linux.programacion
Article #6457Re: Campo auton�merico en MySQL
From: JC
Date: Thu, 26 Jun 2003 08:32
Date: Thu, 26 Jun 2003 08:32
75 lines
4430 bytes
4430 bytes
Hola Rigolox "Rigolox" <rigolox@asaber.de> escribi� en el mensaje news:bccrep$kls$1@nsnmrro2-gest.nuria.telefonica-data.net... > Hola buenas tardes!! > > Tengo un problema con un campo auton�merico, este campo es un identificado > de usuario por ejemplo. > > Si inserto un registro se me pone el identificador con un n�mero m�s al > anterior. Mi problema es: Si este registro que acabo de introducir lo > elimino, e introduzco otro registro, en este nuevo registro el identificador > auton�merico es un n�mero m�s al que he eliminado y no al que realmente > esta antes que �l, como puedo hacer para que sea al anterior en la tabla, y > no al registro anteriormente introducido y elminado? Bueno esto, hasta donde yo se, no se puede hacer. En la estructura de la tabla, los campos autonumericos guardan (realmente es la tabla la que guarda) un last_insert_id, recuperable con last_insert_id() con el ID m�s alto usado de la ultima consulta de insercion en una tabla con campo auto incremental, y no se puede tocar ese campo sin dejar inconsistente la tabla. Para eso puedes utilizar campos no numericos. Sin embargo, al poner un campo clave auto numerico, es por que normalmente no puede haber otro campo de la tabla candidata a ser positivamente clave primaria. Y en ese caso, �Qu� m�s da? El autoincremental solo sirve para apuntar al registro. No importa el orden que lleve, o que se salte alguno. Yo tengo echa una aplicaci�n con tablas no demasiado grandes (alrrededor de 100.000 registros), con un campo autoincremental de PK, y no he tenido problemas nunca con eso. > > Otra cuesti�n es, como reinicio la cuenta de ese campo auton�merico, para > que vuelva a contar desde un n�mero especifico? > Una vez que has metido registros, y si no haces un "delete fron tabla;" no se puede hacer por el motivo anteriormente expuesto. Si la tabla la creas vacia, s� hacerlo en Oracle, pero no en MySQL. Creo que no se puede, si no haces primero un drop de la tabla y la creas de nuevo, y eso siempre para empezar el autonum�rico en 1, claro. Aunque puedes hacer una "trampita" (como dice mi sobrino). Si quieres empezar a contar desde 1000, insertas 999 registros in�tiles, y haces un delete from tabla; Como el auto_incremental no se borra con un delete, pues... eso, "trampita". > Esto es de PHP, en una p�gina web tengo para ver los registros de una tabla. > Nada m�s abrir la p�gina veo un contenido en la tabla, voy a otra p�gina > para introducir otro registro y a continuaci�n vuelvo a la p�gina para ver > los registros de la tabla, pero el que acabo de introducir no me aparece > hasta que no actualizo o cierro el navegador, es decir, cuando se vacia la > cach� del navegador. Se puede hacer que no haga falta actualizar o cerrar el > navegador? Se puede hacer algo. Esto no es de php, sino de http. Debes mandar un encabezado http diciendo que no quieres que se cacheable la p�gina, y un tiempo de expiraci�n si quieres, entre otras cosas. Adem�s, cuando introduces un registro, no deber�as ir hacia atras, sino hacia delante, releyendo la p�gina (una vez definida como no cacheable, p.e. con "pragma no cache" - visita el w3, que ahi lo explican esssstupendamente). Yo lo hago as� en mi aplicaci�n, y funciona bien. > > Espero no molestarles mucho. > Tu nunca molestas. > > SALU2 y gracias. > > saludos y de nada
Technical Details
Message-ID:
<bdeage$dmp$1@mercurio.cica.es>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!bloom-beacon.mit.edu!news.rediris.es!News.cica.es!""!not-for-mailReferences:
<bccrep$kls$1@nsnmrro2-gest.nuria.telefonica-data.net>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,b785db79ce14e080 X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2003-06-26 02:01:09 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!bloom-beacon.mit.edu!news.rediris.es!News.cica.es!""!not-for-mail From: "JC" <makako@makakito.kom> Newsgroups: es.comp.os.linux.programacion Subject: Re: Campo auton�merico en MySQL Date: Thu, 26 Jun 2003 10:32:10 +0200 Organization: C.I.C.A. Lines: 77 Message-ID: <bdeage$dmp$1@mercurio.cica.es> References: <bccrep$kls$1@nsnmrro2-gest.nuria.telefonica-data.net> NNTP-Posting-Host: r-sic.uhu.es X-Trace: mercurio.cica.es 1056615758 14041 150.214.167.140 (26 Jun 2003 08:22:38 GMT) X-Complaints-To: abuse@cica.es NNTP-Posting-Date: 26 Jun 2003 08:22:38 GMT X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.00.2919.6700 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2919.6700