我有一個數據幀,稱爲df
,看起來像這樣:RMySQL dbWriteTable與field.types
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)"))
這會產生錯誤:
Error in function (classes, fdef, mtable) : unable to find an inherited method for function "make.db.names", for signature "MySQLConnection", "NULL"
如果我不指定field.types,並運行:
dbWriteTable(con, name="table_name", value=df)
我得到的錯誤:
Error in mysqlExecStatement(conn, statement, ...) : RS-DBI driver: (could not run statement: BLOB/TEXT column 'dte' used in key specification without a key length)
任何人都可以擺脫一些l在這個?
感謝
我寧可懷疑你的意思,dte列是類「日期」。它正在打印,就好像它是「角色」類一樣。你應該在head(name-object)上發佈str()的結果。 – 2012-01-14 18:49:20
日期列是類日期,我只是在上面手寫了例子。我明確地做了as.Date()以確保這一點。 – Alex 2012-01-15 00:27:52