mysql - from - r sql
RMySQL dbWriteTable con field.types (1)
Después de jugar con las cosas, me di cuenta de cuál es el problema: field.types
debe ser un vector de lista field.types
, no simplemente una lista; Además, los nombres de las filas no deben incluirse, de lo contrario necesitamos tres tipos de campos. Para el ejemplo anterior, lo siguiente funciona bien:
dbWriteTable(con, name="table_name", value=df,
field.types = c(dte="date", val="double(20,10)"), row.names=FALSE)
Tengo un marco de datos, llamado df
, que se ve así:
dte, val
2012-01-01, 23.2323
2012-01-02, 34.343
El tipo en las columnas es fecha y numérico. Me gustaría escribir esto en una base de datos MySQL usando una conexión ya abierta. La conexión funciona bien ya que puedo consultar la db fine. Intento ejecutar lo siguiente:
dbWriteTable(con, name="table_name", value=df, field.types=list("date", "double(20,10)"))
Esto genera el error:
Error en la función (clases, fdef, mtable): no se puede encontrar un método heredado para la función "make.db.names", para la firma "MySQLConnection", "NULL"
Si no especifico un tipo de campo, y ejecuto:
dbWriteTable(con, name="table_name", value=df)
Me sale el error
Error en mysqlExecStatement (conn, sentencia, ...): controlador RS-DBI: (no se pudo ejecutar la sentencia: la columna ''dte'' BLOB / TEXT se usó en la especificación de clave sin una longitud de clave)
¿Alguien puede arrojar algo de luz sobre esto?
Gracias