2017-02-14 10 views
2

R/dplyrを使用してSQLiteテーブルの名前を変更したいと思います。dplyrでSQLiteテーブルの名前を変更する方法は?

db <- src_sqlite("db/path.sqlite", create = TRUE) 
mtcars %>% add_rownames() %>% rename(car = rowname) -> mtcars2 
copy_to(db, mtcars2, indexes = list("car")) 
q <- "ALTER TABLE mtcars2 RENAME TO mtcars3" 
tbl(db, sql(q)) 

しかし、これはエラーを与える:それだけでなければなりません(一見)のようにdocumentationから

は、それが見えます。セミコロンがないと思ったかもしれませんが、いずれの場合も同じエラーが出ます。

Error in sqliteSendQuery(conn, statement) (from #4) : 
    error in statement: near "ALTER": syntax error 

トレースバックの上部には示しています

21: .Call(rsqlite_query_send, [email protected], as.character(statement), bind.data) 
20: sqliteSendQuery(conn, statement) 
19: .local(conn, statement, ...) 
18: DBI::dbSendQuery(con, build_sql("SELECT * FROM ", sql)) 
17: DBI::dbSendQuery(con, build_sql("SELECT * FROM ", sql)) 

src_sqliteによって生成された接続に依存するテーブル名を変更する方法はありますかやる私はこの接続を閉じて、別の接続を開く必要がRSQLite/DBIを直接使用していますか?私のアプリケーションでは、前者を好むでしょう。

ありがとうございます。

答えて

2

DBIを使用するにはDBI:::dbSendQuery(db$con, sql(q))を使用できます。 db$conを使用すると、別の接続を開く必要はありません。

関連する問題