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) |
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
|
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. |
Select...Into.... mmmh, si eso podria funcionar.
Gracias, voy a probar por ese lado. |
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. |
La franja horaria es GMT +2. Ahora son las 22:34:03. |
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