Ver Mensaje Individual
  #4 (permalink)  
Antiguo 24/05/2009, 11:01
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: no puedo importar excel.csv a mysql

Empecemos así:
1. ASCII es una de las formas de codificar los caracteres basados en el alfabeto latino y occidental moderno y es uno de los más usados en los archivos de texto plano (como lo es el .CSV). Es tal vez la forma más difundida de codificar caracteres, pero no la única. Como sabemos, una computadora no entiende letras, sólo entiende números binarios, por lo que se debe establecer un código para que el binario se interprete como letras.

2. El hecho de que tengas una línea de encabezados es parte del problema, ya que MySQL intenta poner esos encabezados en los campos definidos, y no puede.

3. La fecha tal y como está almacenada en el CSV está mal. No se debe guardar una fecha en ese formato de texto por dos razones:
a) Las bases de datos no la interpretarán como fecha, sino como cadena de caracteres, lo que al intentar meterla en un campo DATE generará errores de conversión.
b) Porque estás desperdiciando bytes, ya que necesitas un campo VARCHAR de al menos 24 caracteres para almacenar algo que se puede hacer con 8 (ancho real del DATETIME en la tabla). Poner la fecha en ese formato es un asunto de representación, no de almacenamiento. En las bases de datos los campos se cargan con el formato "AAAA-MM-DD HH:mm:ss" o bien "AAAA-MM-DD". El resto se resuelve en el momento de representarlo en pantalla.

Dicho esto, lo que tienes que hacer son dos cosas:
1. Generar el CSV (o requerir que lo hagan) donde las fechas tengan el formato correcto.
2. Agregarle la condición de IGNORE xx LINES a tu sentencia.

La sentencia debería quedar mas o menos así:
Código mysql:
Ver original 
Atención: Asegúrate que tanto los terminadores de línea como los separadores de columnas sean correctos. Puede haber variaciones menores que generen errores.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)