Ver Mensaje Individual
  #13 (permalink)  
Antiguo 02/10/2014, 06:53
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Usar un trigger para cambiar el formato fecha

Básicamente el volcado masivo que yo mencionaba es precisamente lo que te plantea @quimfv.
Respecto al LOAD DATA, lo que hay que tener en cuenta es que no se puede ejecutar en un SP, por lo que tendrías que lanzarlo en forma programática, como hoy haces los inserts. Puede ser un buen método para agregar a lo que te propongo.

La idea es que generes una tabla transaccional mas o menos como esta:
Código MySQL:
Ver original
  1. CREATE TABLE fichajesTemp
  2.     (NAME VARCHAR(75),
  3.     sTime VARCHAR(15),
  4.     VerifyFlag VARCHAR(50),
  5.     MachineName SMALLINT UNSIGNED,
  6.     checktype VARCHAR(1),
  7.     sensorid SMALLINT UNSIGNED,
  8.     workcode SMALLINT UNSIGNED,
  9.     sDate VARCHAR(15),
  10.     Pin SMALLINT UNSIGNED);
A esa le haces el vocado con el LOAD DATA, y quedarían los datos necesarios ya en ella.
Luego, suponiendo que la tabla final tiene este formato:
Código MySQL:
Ver original
  1. CREATE TABLE fichajes
  2.     (NAME VARCHAR(75),
  3.     sTime TIME,
  4.     VerifyFlag VARCHAR(50),
  5.     MachineName SMALLINT UNSIGNED,
  6.     checktype VARCHAR(1),
  7.     sensorid SMALLINT UNSIGNED,
  8.     workcode SMALLINT UNSIGNED,
  9.     sDate DATE,
  10.     Pin SMALLINT UNSIGNED);
necesitarías luego un EVENT cuyo cuerpo de código tenga algo como esto:

Código MySQL:
Ver original
  1. LOCK TABLE fichajesTemp;    
  2. INSERT INTO FICHAJES
  3. SELECT Name,
  4.    TIME(STR_TO_DATE(sTime, '%d/%m/%Y %T')) ssTime,
  5.    VerifyFlag,
  6.    MachineName,
  7.    checktype,
  8.    senso id,
  9.    workcode,
  10.    DATE(STR_TO_DATE(sTime, '%d/%m/%Y %h:%i:%s')) ssDate,
  11.    Pin
  12. FROM fichajesTemp;
  13. TRUNCATE fichajesTemp;
  14. UNLOCK TABLE fichajesTemp;
Esto lo estoy imaginando, no hagas un Copy+Paste porque hay que hacer pruebas aún...

El EVENT lo planteo para que la carga final pueda programarse para ser ejecutada en clos ciclos de tiempo que quieras. Por su lado el llenado de la tabla transaccional dependerá de cómo lo programes tu. Pero usualmente ocnviene hacerlo por medio de un servicio que corra en background, para evitarte complicaciones.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)