gpt4 book ai didi

mysql - RMySQL dbWriteTable 与 field.types

转载 作者:IT老高 更新时间:2023-10-28 23:51:04 25 4
gpt4 key购买 nike

我有一个名为 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)"))

这会产生错误:

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)

任何人都可以阐明这一点吗?

谢谢

最佳答案

玩了之后才发现问题出在哪里:field.types必须是NAMED list向量,而不是简单的列表;此外,不能包含行名,否则我们需要三种字段类型。对于上面的示例,以下工作正常:

dbWriteTable(con, name="table_name", value=df,
field.types = c(dte="date", val="double(20,10)"), row.names=FALSE)

关于mysql - RMySQL dbWriteTable 与 field.types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8864174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com