Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-08-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 15
dado Va por buen camino
Respaldo con condicional

Hola,

Tengo esta situacion, aver si se les ocurre como solucionarlo.

Tengo una base de datos que tiene informacion desde el año 2003, asi que son ya 7 años de estar acumulando "polvo".

Mi intencion es hacer el respaldo *solo* del 2003 al 2008, y de esa manera proceder a borrarlo de la base de datos y solo quedarme con los años 2009 y 2010.

Hay alguna funcion que me permita hacer el respaldo con la instruccion "where year(fecha) < 2009" ?

Uso Delphi 7 y MySQL V5

Tengo esta pequeña solucion pero no me gusta y por eso pido ayuda:

1. Hacer el respaldo de TODO (años 2003-2010)
2. Borrar con algo como "delete from tabla where fecha>2008" (se borra 2009 y 2010, queda 2003 al 2008)
3. Volver a hacer el respaldo, en este caso ya solo tendria los años 2003 a 2008
4. Restaurar el respaldo que se hizo en el paso 1 (todo de regreso otra vez)
5. Borrar con algo como "delete from tabla where fecha<2009" (borro del 2003 al 2008, me quedo con 2009 y 2010)
Responder Con Cita
  #2  
Antiguo 18-08-2010
Avatar de adeszeus
adeszeus adeszeus is offline
Miembro
 
Registrado: abr 2010
Ubicación: San Mateo, Mexico (aun lado de Santa Maria y pasando el campo de futbol)
Posts: 47
Poder: 0
adeszeus Va por buen camino
copia el archivo de tú base de datos

por que no haces un formulario donde hagas un respaldo de tú base de datos a tú archivo respaldado aplicas tú filtro de eliminar los recientes y después vuelves a cargar la de uso y eliminas los registros viejos
Responder Con Cita
  #3  
Antiguo 18-08-2010
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
Respuesta

HOLA NO SE QUE BASE DE DATOS UNSAS PERO PARA MI QUE LO MAS CONVENIENTE
ES CREAR EL RESPALDO CON LA SIGUIENTE CONDICION

SELECT * INTO [nombre_tabla_respaldo)
FROM tabla_origen WHERE anño<2008

y bueno a la tabla original le hace un delete

delete from tabla original where año<2008.

creo que con eso quedaria.


ahora si lo quieres hacer por delphi pues puedes hacer la consulta con un adoquery.
y posteriormente ir recorriendo los registros para irlos insertando en la tabla.



Responder Con Cita
  #4  
Antiguo 18-08-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 15
dado Va por buen camino
Select...Into.... mmmh, si eso podria funcionar.

Gracias, voy a probar por ese lado.
Responder Con Cita
  #5  
Antiguo 20-08-2010
dado dado is offline
Miembro
 
Registrado: may 2010
Posts: 76
Poder: 15
dado Va por buen camino
Aqui ya encontre la solucion. Gracias a microbiano por darme una pista.

Encontre algo muy interesante, estoy seguro que en la escuelita debieron habermelo enseñado pero como nunca lo uso....

se puede hacer :

create table mitabla select * from mitabla2 where (condicion);

esto crea una table nueva llamada "mitabla" con los mismos campos que "mitabla2" y de paso copia los datos de "mitabla2" a "mitabla" que cumplan con la condicion. TODO EN UN SOLO PASO!! esta chido.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas de condicional If whatson Varios 7 18-08-2010 21:57:15
Existe el Operador Condicional ? JordiP Varios 9 17-06-2010 12:42:39
si condicional en interbase??? GustavoCruz Firebird e Interbase 3 18-11-2008 21:10:08
Compilador Condicional sercornejov Varios 4 22-09-2007 01:14:08
locate condicional gatsoft2 Varios 10 06-05-2005 16:57:37


La franja horaria es GMT +2. Ahora son las 04:26:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi