🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #6457

Re: Campo auton�merico en MySQL

#6457
From: JC
Date: Thu, 26 Jun 2003 08:32
75 lines
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-mail
References: <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