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

Actualizar y eliminar registros a la vez

Estas en el tema de Actualizar y eliminar registros a la vez en el foro de Mysql en Foros del Web. Hola, estoy actualizando una base de datos desde un archivo csv con REPLACE y todo funciona correctamente. Los nuevos registros se insertan y los que ...
  #1 (permalink)  
Antiguo 16/09/2009, 09:42
 
Fecha de Ingreso: agosto-2009
Mensajes: 11
Antigüedad: 14 años, 8 meses
Puntos: 0
Actualizar y eliminar registros a la vez

Hola,

estoy actualizando una base de datos desde un archivo csv con REPLACE y todo funciona correctamente. Los nuevos registros se insertan y los que ya estaban se vuelven a insertar por si había un cambio en algun campo.

El problema es que si se ha borrado alguna fila en el archivo csv, permanece en la base de datos. Hay alguna manera de saber los registros que se han cambiado con el REPLACE y así borrar los que no han sido afectados por la consulta?
O es mejor hacer un TRUNCATE y luego un INSERT y así me olvido de los que han sido borrados?

Dejo aquí el código que utilitzo:

Código PHP:
$tipo_archivo $_FILES['txt_file']['type'];
if(isset(
$_POST['submit'])){
    if(!(
strpos($tipo_archivo"csv"))){
        
$conn mysql_connect("servidor","nombre","pasw");
        
mysql_select_db("Municipales_inclusio",$conn);
        
$filename=$_FILES['filename']['tmp_name'];
        
$handle =fopen("$filename","r");
        while ((
$data fgetcsv($handle4000";")) !== FALSE){
            
$import="REPLACE INTO mapa_recursos(Id,Institucion,Persona_contacto) values ('$data[0]','$data[1]','$data[2]');";
            
$consulta mysql_query($import,$conn) or die (mysql_error());
        }
        
fclose($handle);
        
//mensaje de exito.
        
$titulo "Mapa de recursos";
        
$mensaje "La base de datos se ha actualizado correctamente";
        include(
"mensajes.php");
        exit;
    } else{
        print 
"Archivo no válido";
    }

Saludos y gracias
  #2 (permalink)  
Antiguo 16/09/2009, 10:29
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Actualizar y eliminar registros a la vez

Cita:
Hay alguna manera de saber los registros que se han cambiado con el REPLACE y así borrar los que no han sido afectados por la consulta?
No hay forma.

Cita:
O es mejor hacer un TRUNCATE y luego un INSERT y así me olvido de los que han sido borrados?
sería una mejor opción. pero ten cuidado con truncate. Este no es reversible ni siquiera si se manejan transacciones.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 23:32.