Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/10/2012, 15:37
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Insercion automatica de datos a tabla

Hola Mauk:

Vayamos por partes... de entrada, la tabla tal como la planteas ni siguiera puede ser creada, pues no puedes tener dos campos con el mismo nombre (M)... además, tal como lo hace notar gnzsoloyo, no es para nada eficiente... pero si como suele suceder, no puedes cambiar tu modelo podrías hacer algo así:

Supongamos que que los registros los vas vas a capturar por semana, el primer día tendrías que hacer un insert a la tabla, pero los subsecuentes tendrían que ser actualizaciones...

es decir, tendrías que hacer algo como esto:

Código MySQL:
Ver original
  1. mysql> CREATE TABLE tabla (puesto VARCHAR (50), L VARCHAR (10),
  2.     -> Ma VARCHAR (10), Mi VARCHAR (10), J VARCHAR (10),
  3.     -> V VARCHAR (10), S VARCHAR (10), D VARCHAR (10));
  4. Query OK, 0 rows affected (0.13 sec)
  5.  
  6. mysql> INSERT INTO tabla VALUES ('puesto',
  7.     -> IF(DAYOFWEEK(CURDATE()) = 2, 'X', NULL),
  8.     -> IF(DAYOFWEEK(CURDATE()) = 3, 'X', NULL),
  9.     -> IF(DAYOFWEEK(CURDATE()) = 4, 'X', NULL),
  10.     -> IF(DAYOFWEEK(CURDATE()) = 5, 'X', NULL),
  11.     -> IF(DAYOFWEEK(CURDATE()) = 6, 'X', NULL),
  12.     -> IF(DAYOFWEEK(CURDATE()) = 7, 'X', NULL),
  13.     -> IF(DAYOFWEEK(CURDATE()) = 1, 'X', NULL));
  14. Query OK, 1 row affected (0.05 sec)
  15.  
  16. mysql> SELECT * FROM tabla;
  17. +--------+------+------+------+------+------+------+------+
  18. | puesto | L    | Ma   | Mi   | J    | V    | S    | D    |
  19. +--------+------+------+------+------+------+------+------+
  20. | puesto | NULL | X    | NULL | NULL | NULL | NULL | NULL |
  21. +--------+------+------+------+------+------+------+------+
  22. 1 row in set (0.00 sec)
  23.  
  24. mysql> UPDATE tabla SET
  25.     -> L = IF(DAYOFWEEK('2012-10-26') = 2, 'X', L),
  26.     -> Ma = IF(DAYOFWEEK('2012-10-26') = 3, 'X', Ma),
  27.     -> Mi = IF(DAYOFWEEK('2012-10-26') = 4, 'X', Mi),
  28.     -> J = IF(DAYOFWEEK('2012-10-26') = 5, 'X', J),
  29.     -> V = IF(DAYOFWEEK('2012-10-26') = 6, 'X', V),
  30.     -> S = IF(DAYOFWEEK('2012-10-26') = 7, 'X', S),
  31.     -> D = IF(DAYOFWEEK('2012-10-26') = 1, 'X', D)
  32.     -> WHERE puesto = 'puesto';
  33. Query OK, 1 row affected (0.04 sec)
  34. Rows matched: 1  Changed: 1  Warnings: 0
  35.  
  36. mysql> SELECT * FROM tabla;
  37. +--------+------+------+------+------+------+------+------+
  38. | puesto | L    | Ma   | Mi   | J    | V    | S    | D    |
  39. +--------+------+------+------+------+------+------+------+
  40. | puesto | NULL | X    | NULL | NULL | X    | NULL | NULL |
  41. +--------+------+------+------+------+------+------+------+
  42. 1 row in set (0.00 sec)

Observa que en el caso del update estoy utilizando la fecha del 26 de Octubre en vez de la fecha actual (CURDATE()).

Saludos
Leo.