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

Delete from Table Mysql

Estas en el tema de Delete from Table Mysql en el foro de Mysql en Foros del Web. Hola, tengo un servidor de correos que utiliza mailwatch, en base de datos mysql, la base de datos se llama mailscanner, y la tabla que ...
  #1 (permalink)  
Antiguo 06/06/2007, 08:20
 
Fecha de Ingreso: junio-2006
Mensajes: 5
Antigüedad: 17 años, 10 meses
Puntos: 0
Delete from Table Mysql

Hola, tengo un servidor de correos que utiliza mailwatch, en base de datos mysql, la base de datos se llama mailscanner, y la tabla que deseo modificar se llama maillog.

Esta tabla maillog tiene aproximadamente 4 gigas de tamaño, y lo que alberga es logs de correos, y quiero eliminar los registros anteriores, como factores en comun podria eliminar por ID o por nombre de dominio.?

Cual seria el comando para eliminar registros de la tabla??
Podria tambien hacerse si instalo un cliente como phpmyadmin???

Gracias de antemano
  #2 (permalink)  
Antiguo 06/06/2007, 14:02
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Re: Delete from Table Mysql

La mejor forma es usar truncate, asi:

truncate table maillog

Que en phpmyadmin equivale a "vaciar". phpmyadmin te serviría.
  #3 (permalink)  
Antiguo 06/06/2007, 17:24
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Delete from Table Mysql

Si queres eliminar TODO el contenido de la tabla y dejarla como recién declarada, utiliza el TRUNCATE a como te lo indica claudiovega.

Si lo que necesitas, es eliminar solo algunos datos, debes realizar un DELETE complejo como:
Código PHP:
DELETE FROM tabla
WHERE 
<condicion>

COMMIT 
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #4 (permalink)  
Antiguo 07/06/2007, 08:32
 
Fecha de Ingreso: junio-2006
Mensajes: 5
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Delete from Table Mysql

Gracias, si por ejemplo quisiese eliminar de la tabla maillog lo de una año en especifico?? o si por ejemplo quisiese borrar todo lo que tenga la palabra dominio.com?? es esto posible y cual seria la sintaxis?

Gracias de antemano
  #5 (permalink)  
Antiguo 07/06/2007, 09:53
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Re: Delete from Table Mysql

Holas darth__vader, lo que quieres realizar puede ser posible siempre y cuando dieras mas información de la tabla, porque no sabemos si en tu tabla tienes alguna columna de la fecha del registro de cada tupla, no sabemos si tienes una columna que contenga el dominio de los correos o una columna solo con los correos, como veras dejas muchas dudas dispersas, como para poder ofrecerte una posible solucion puntual a tu problema, pero aqui te dejo una idea de mas o menos como puede ser:
Código PHP:
DELETE FROM tabla
WHERE YEAR
(campoFecha) = '2005' AND campoCorreo LIKE '%.dominio.com'
Espero que te de una pauta de las cosas que se puede hacer con la sentencia DELETE, tambien puedes revisar la documentacion de MySQL, donde encontraras ejemplos sencillos y practicos sobre el uso de la sentencia DELETE, saludos, cya
http://dev.mysql.com/doc/refman/5.0/es/delete.html
__________________
"El Conocimiento es de todos, no solo de algunos"
  #6 (permalink)  
Antiguo 07/06/2007, 11:37
 
Fecha de Ingreso: junio-2006
Mensajes: 5
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Delete from Table Mysql

Disculpame, la tabla tiene algo asi.

timestamp
2006-12-13 12:36:41

ID
77A213BC035.999F4

from_domain
midominio.com

Tiene muchas mas columnas, ya que pesa 3.5gb, pero esas serian mas o menos por las que me gustaria seleccionar, por ejemplo, me gustaria eliminar de la tabla todo lo que es de 2006 o por ID o por dominio, cualquier solucion me sirve.

Mil gracias de antemano
  #7 (permalink)  
Antiguo 07/06/2007, 11:51
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Re: Delete from Table Mysql

Pues depende que se acomode mejor puedes usar:
Código PHP:
//Por año 2006
DELETE FROM maillog
WHERE YEAR
(timestamp) = '2006' ;  

//Por dominio
DELETE FROM maillog 
WHERE from_domain 
'midominio.com';  

//Por ID
DELETE FROM maillog 
WHERE ID 
='77A213BC035.999F4'
Todo depende que necesites, puedes ya a partir de ahi variando la condicion para la eliminacion, revisa tambien la documentacion de MySQL:
http://dev.mysql.com/doc/refman/5.0/es/delete.html
saludos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #8 (permalink)  
Antiguo 08/06/2007, 08:36
 
Fecha de Ingreso: junio-2006
Mensajes: 5
Antigüedad: 17 años, 10 meses
Puntos: 0
Re: Delete from Table Mysql

Gracias a todos, en este momento ya tengo la base de datos trabajando bien.

Gracias de nuevo
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 07:55.