Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Borrar los registros más antiguos

Estas en el tema de Borrar los registros más antiguos en el foro de Bases de Datos General en Foros del Web. Hola, Utilizo en mi Web php y Mysql. Necesito hacer un script para borrar los registros más antiguos de la base de datos ya que ...
  #1 (permalink)  
Antiguo 05/05/2007, 19:54
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Borrar los registros más antiguos

Hola,

Utilizo en mi Web php y Mysql.
Necesito hacer un script para borrar los registros más antiguos de la base de datos ya que al ser demasiados la página carga muy lenta.

Me gustaría poder borrar los primeros registros cuando el número sobrepase una cantidad determinada, por ejemplo 10.000 y borrar todos los que sobrepasen esta cantidad. El script se podría ejecutar una vez a la semana, de este modo los registros no llegarían a ser muchos más de estos 10.000 y así la base de datos no crecería demasiado.

Me pueden ayudar o aconsejar alguna posible solución?

Muchas gracias
Saludos...
  #2 (permalink)  
Antiguo 08/05/2007, 08:43
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Re: Borrar los registros más antiguos

Borrar los registros de la base de datos o de una tabla?
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #3 (permalink)  
Antiguo 08/05/2007, 10:49
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Borrar los registros más antiguos

Hola,

Son los registros de una tabla, necesito que se borren los más antiguos cuando superen los 10.000.

Saludos
  #4 (permalink)  
Antiguo 08/05/2007, 11:11
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Re: Borrar los registros más antiguos

Bueno, eso depende, ¿cual es la estructura de la tabla?.
Sería bueno que especifiques que base de datos usas también.
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #5 (permalink)  
Antiguo 08/05/2007, 11:33
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Borrar los registros más antiguos

Pues la verdad es que no se decirte lo que me pides, tengo poco conocimiento sobre esto.

Es una tabla donde se van registrando los clasificados que van insertando los usuarios y la base de datos es mysql, las que vienen en el panel de control de cpanel.

Siento no poder informar mejor, pero tengo poco conocimiento sobre esto.

Saludos
  #6 (permalink)  
Antiguo 08/05/2007, 11:54
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Re: Borrar los registros más antiguos

No hay problema amigo. Lo que te pedia es, cuales son los campos que tiene la tabla.
Te pedia eso para ver si te podrias guiar por algun campo para poder eliminar los datos más antiguos, por ejemplo si tuvieras un campo que guarde la fecha de inserción del registro te podria ayudar.
La situación es, siempre quieres tener 10,000 registros o un poco menos.
Espero que otras personas puedan darte más pautas también.
Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #7 (permalink)  
Antiguo 08/05/2007, 14:42
 
Fecha de Ingreso: abril-2007
Mensajes: 17
Antigüedad: 17 años
Puntos: 0
Re: Borrar los registros más antiguos

Puedes hacer que el script ejecute un SELECT * FROM TABLA ORDER BY FECHA, de modo que te los ordene de antiguos a nuevos, cuentas el num de registros que devolvió esa consulta y después con un bucle desde 1 hasta 10000 vas borrando los campos a partir de su id.

Con esto borrarás los 10mil mas antiguos.
Espero que te haya sido de ayuda, siento no explicarme muy bien jeje, si tienes alguna duda te lo intentaré explicar mejor.

Adrián Fernández
La ayuda se da en los foros, no personalizados por correo

Última edición por BrujoNic; 08/05/2007 a las 18:01
  #8 (permalink)  
Antiguo 08/05/2007, 16:43
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Borrar los registros más antiguos

Gracias a ambos por responder.

Para PequeñoMauro:
Los campos de la tabla son:
ID_clasificado
ID_categoria
ID_subcategoria
titulo
creado - fecha
nombre
descripcion
pagina web
precio
pais
telefono
lecturas
respuestas

El cambo creado indica la fecha tal como me pides.
Puedo tener 10.000 registros o unos pocos más, hasta 15.000 por ejemplo pero que no sobrepasen más, pero que nunca se borren los últimos 10.000 para garantizar siempre un mínimo de 10.000


Para jomerin:
Me parece perfecto lo que dices, lo único que no necesito borrar 10.000, sino que queden los últimos 10.000 registros y borrar el resto.

También te agradecería si me pudieras poner un ejemplo de como debe ser ese script, ya que me cuesta mucho sacarlo.

Gracias otra vez,
Saludos
  #9 (permalink)  
Antiguo 09/05/2007, 01:32
 
Fecha de Ingreso: abril-2007
Mensajes: 17
Antigüedad: 17 años
Puntos: 0
Re: Borrar los registros más antiguos

Sería algo así mas o menos, espero que te sirva.

Código:
$sql = "SELECT ID FROM TABLA ORDER BY FECHA";
	$resultado = mysql_exec($sql); //Obtenemos todos los resultados
	$count=mysql_num_rows($resultado) //Contamos el num de registros
	if ($count > 10000){	//Solo se borran registros si hay muchos
		$i=0;
		while (($i<($count - 10000))&& ($fila = mysql_fetch_row) )	//Se vab cogiendo uno a uno hasta que solo queden 10000
		{
		  mysql_exec("DELETE FROM TABLA WHERE ID=".$fila['id']);	//Se va borrando cada registro
		  $i++;
		}
	}
  #10 (permalink)  
Antiguo 09/05/2007, 06:18
 
Fecha de Ingreso: enero-2006
Mensajes: 15
Antigüedad: 18 años, 3 meses
Puntos: 0
Re: Borrar los registros más antiguos

Hola,

Lo mejor que he conseguido es borrar los registros más antiguos al ejecutar el archivo, pero un número determinado por ejemplo 6.000. Con esta sentencia:
$deleteSQL = sprintf("Delete From clasificados Where ID_clasificado ORDER BY clasificados.creado DESC LIMIT 10",

Pero no se como implantarle el código que me das para que borre cuando hay más de 10.000 y sean los más antiguos. Me da error el esta línea de tu codigo:
Parse error: syntax error, unexpected T_IF in........
if ($count > 10000){ //Solo se borran registros si hay muchos

Sabes donde puede estar el fallo?

Saludos...
  #11 (permalink)  
Antiguo 05/09/2010, 10:42
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Re: Borrar los registros más antiguos

Cita:
Iniciado por jromes Ver Mensaje
Hola,

Lo mejor que he conseguido es borrar los registros más antiguos al ejecutar el archivo, pero un número determinado por ejemplo 6.000. Con esta sentencia:
$deleteSQL = sprintf("Delete From clasificados Where ID_clasificado ORDER BY clasificados.creado DESC LIMIT 10",

Pero no se como implantarle el código que me das para que borre cuando hay más de 10.000 y sean los más antiguos. Me da error el esta línea de tu codigo:
Parse error: syntax error, unexpected T_IF in........
if ($count > 10000){ //Solo se borran registros si hay muchos

Sabes donde puede estar el fallo?

Saludos...

en el codigo que te pasaron falta un cierre ";" .

$count=mysql_num_rows($resultado); //Contamos el num de registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:15.