Tema: Casteo MySQL
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/06/2011, 15:10
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: 17 años, 3 meses
Puntos: 2658
Respuesta: Casteo MySQL

No te va a fallar porque MySQL realiza conversiones implícitas entre valores y columnas.
Eso se hace porque muchas interfases de datos (ODBC, por caso) manipulan los valores numéricos como si fuesen cadenas de texto y no numéricos. En tales casos lo que hace MySQL es tratar de insertar el valor indicado y cuando la conversión no se puede ejecutar, pone el valor devuelto por sus funciones internas o simplemente NULL.
Esto se implementó de esta forma para permitir, por ejemplo, que se pueda ingresar un '1' a un campo INT, o bien que '2011-4-22' pueda ser convertido a fecha aunque no se indique para ponerlo en un DATE. En otras palabras, hay muchas razones de peso para que existan las conversiones implícitas en los DBMS (no sólo en MySQL).
Además, ten en cuenta que MySQL no tiene métodos específicos para hacer cierto tipo de validaciones, y tampoco las necesita, porque esa tarea no se hace en las bases de datos. SQL no es un lenguaje de programación, es un lenguaje de consultas, por lo que se presupone que los datos han sido debidamente validados en la aplicacion antes de desperdiciar recursos de la base de datos en cosas que se hacen mejor de otro modo:Se hacen en los lenguajes de programación, que sí tienen funciones específicas para eso.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)