Tôi có một khung dữ liệu, gọi là df
, trông như thế này:RMySQL dbWriteTable với field.types
dte, val
2012-01-01, 23.2323
2012-01-02, 34.343
Loại trên cột là ngày tháng và số. Tôi muốn viết điều này vào một cơ sở dữ liệu MySQL bằng cách sử dụng một kết nối đã được mở. Kết nối hoạt động tốt vì tôi có thể truy vấn tiền phạt của db. Tôi cố gắng chạy như sau:
dbWriteTable(con, name="table_name", value=df, field.types=list("date", "double(20,10)"))
này tạo ra các lỗi:
Error in function (classes, fdef, mtable) : unable to find an inherited method for function "make.db.names", for signature "MySQLConnection", "NULL"
Nếu tôi không chỉ định một field.types, và chạy:
dbWriteTable(con, name="table_name", value=df)
tôi nhận được lỗi :
Error in mysqlExecStatement(conn, statement, ...) : RS-DBI driver: (could not run statement: BLOB/TEXT column 'dte' used in key specification without a key length)
Bất cứ ai có thể bỏ một số l ight về điều này?
Cảm ơn
Tôi khá nghi ngờ ý nghĩa của bạn rằng cột dte thuộc lớp "Ngày". Nó được in như thể nó là của lớp "nhân vật". Bạn nên đăng thay vì kết quả của str() trên đầu (tên-đối tượng). –
cột ngày là ngày của lớp, tôi chỉ viết lên ví dụ bằng tay ở trên. tôi rõ ràng làm as.Date() trên đó để đảm bảo điều này. – Alex