0

こんにちは、RpostgreSQL パッケージを使用して postgresql テーブルを更新しようとしています。R のコマンドは正常に実行されますが、新しいデータがデータベースに反映されません。以下は、Rで実行したコマンドです

for(i in new_data$FIPS) {
  drv <- dbDriver("PostgreSQL")
  con <- dbConnect(drv, dbname="ip_platform", host="******", port="5432", user="data_loader", password="******")
  txt <- paste("UPDATE adminvectors.county SET attributes= hstore('usco@TP-TotPop@2010'::TEXT,",new_data$TP.TotPop[new_data$FIPS == i],"::TEXT) where geoid ='",i,"'")
  dbGetQuery(con, txt)
  dbCommit(con)
  dbDisconnect(con)
}

私が何か間違ったことをしたかどうか、誰かに知らせてもらえますか? どんな助けでも大歓迎です

4

3 に答える 3

0

単純化、単純化、単純化 - RPostgreSQL には、当初から (2008 年に劣らず) これらのタイプの操作の単体テストがあり、これは機能します (データベースのセットアップに問題がない限り)。

たとえば、すべてのテストについては、GitHub リポジトリのこちらを参照してください。

于 2015-10-30T16:42:15.617 に答える
0

ご意見をお寄せいただきありがとうございます。問題は、for ループで使用した paste() 関数にあります。paste() 関数は、クエリ内のコンマをスペースに置き換えました。その結果、where 条件が失敗しています。paste() に sep="" 属性を追加したところ、クエリがデータベースに適切に送信され、期待どおりに行が更新されるようになりました。

于 2015-11-03T14:35:11.890 に答える