Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/03/2013, 12:49
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 11 meses
Puntos: 447
Respuesta: unir campos de tabla con constraint y substring?

Hola summerblack:

Vayamos por partes... Si se trata de un campo que puedas calcular a través de la información que tienes en tu tabla en realidad no hay necesidad de tener físicamente el campo en la tabla... al momento de hacer un select puedes recuperar la información que necesitas, utilizando la función CONCAT para formar el campo. Checa este script:

Código MySQL:
Ver original
  1. mysql> SELECT * FROM tabla;
  2. +----+--------+-------------+---------------------+
  3. | id | numero | ciudad      | fecha               |
  4. +----+--------+-------------+---------------------+
  5. |  1 |     12 | MADRID      | 2013-03-19 11:17:48 |
  6. |  2 |      1 | BARCELONA   | 2013-03-19 11:17:48 |
  7. |  3 |      5 | MEXICO      | 2013-03-19 11:17:48 |
  8. |  4 |     11 | GUADALAJARA | 2013-03-19 11:17:48 |
  9. |  5 |     24 | ATLANTA     | 2013-03-19 11:17:48 |
  10. |  6 |     12 | LA PAZ      | 2013-03-19 11:17:48 |
  11. +----+--------+-------------+---------------------+
  12. 6 rows in set (0.00 sec)
  13.  
  14. mysql> SELECT
  15.     ->   id, numero, ciudad,
  16.     ->   CONCAT('T', SUBSTRING(ciudad, 1, 4), numero) calculado
  17.     -> FROM TABLA;
  18. +----+--------+-------------+-----------+
  19. | id | numero | ciudad      | calculado |
  20. +----+--------+-------------+-----------+
  21. |  1 |     12 | MADRID      | TMADR12   |
  22. |  2 |      1 | BARCELONA   | TBARC1    |
  23. |  3 |      5 | MEXICO      | TMEXI5    |
  24. |  4 |     11 | GUADALAJARA | TGUAD11   |
  25. |  5 |     24 | ATLANTA     | TATLA24   |
  26. |  6 |     12 | LA PAZ      | TLA P12   |
  27. +----+--------+-------------+-----------+
  28. 6 rows in set (0.00 sec)

Observa el último caso, lo puse a propósito, la función substring considera el espacio como una posición más, por lo tanto cuando en el nombre de la ciudad existan espacios en las primeras cuatro posiciones apareceran en la clave... podrías eliminarlos de la clave, pero eso depende de tu lógica de negocio.

Saludos
Leo.