【发布时间】:2012-02-10 11:01:35
【问题描述】:
我有一个名为 df 的数据框,如下所示:
dte, val
2012-01-01, 23.2323
2012-01-02, 34.343
列上的类型是日期和数字。我想使用已经打开的连接将其写入 MySQL 数据库。连接工作正常,因为我能够很好地查询数据库。我尝试运行以下命令:
dbWriteTable(con, name="table_name", value=df, field.types=list("date", "double(20,10)"))
这会产生错误:
函数错误(类、fdef、mtable):无法找到函数“make.db.names”的继承方法,用于签名“MySQLConnection”、“NULL”
如果我没有指定 field.types,然后运行:
dbWriteTable(con, name="table_name", value=df)
我得到错误:
mysqlExecStatement(conn, statement, ...) 中的错误:RS-DBI 驱动程序:(无法运行语句:BLOB/TEXT 列“dte”在没有密钥长度的密钥规范中使用)
任何人都可以对此有所了解吗?
谢谢
【问题讨论】:
-
我很怀疑你暗示 dte 列属于“日期”类。它正在打印,就好像它是“字符”类一样。您应该在 head(name-object) 上发布 str() 的结果。
-
日期列是类日期,我只是在上面手工写了例子。我明确地做 as.Date() 以确保这一点。