8

RMySQL を使用して MySQL テーブルにデータを追加しようとしています。一度に 1 行だけ追加する必要がありますが、機能していません。私がやろうとしているのはこれです。

dbGetQuery(con,"INSERT INTO names VALUES(data[1,1], data[1,2])")

私がやっていることは、「データ」という名前のデータフレームに値があり、それらをmysqlテーブルに入れる必要があるということです。その前に、それらが既にテーブルにあるかどうかを確認し、そうでない場合は追加しますが、その方法では機能しません。データは .csv ファイルから読み取られますread.csv

4

2 に答える 2

17

を使用pasteして、その実際のクエリを作成できます。

dat <- matrix(1:4, 2, 2)
query <- paste("INSERT INTO names VALUES(",data[1,1], ",", data[1,2], ")")
query
#[1] "INSERT INTO names VALUES( 1 , 3 )"
dbGetQuery(con, query)

# If there are a lot of columns this could be tedious...
# So we could also use paste to add all the values at once.
query <- paste("INSERT INTO names VALUES(", paste(data[1,], collapse = ", "), ")")
query
#[1] "INSERT INTO names VALUES( 1, 3 )"
于 2013-02-25T18:38:53.913 に答える