我正在尝试使用R中的dplyr从数据库中删除表格。在SQLite中,这样做的方法很清楚:DROP TABLE...但是,当我在dplyr文档中搜索此命令时,我发现没有任何提示表明该命令可用。它可用吗?如何操作?
正如之前的评论所提到的,有一些常见的数据库命令没有被充分记录,其中包括?db_drop_table。
要使用它,您需要一个连接对象,这个连接对象附加到您的数据库定义对象:
pg <- src_postgres(dbname='NameOfDatabase', # Define the connection
user='user',
password='password')
> str(pg)
List of 3
$ con :Formal class 'PostgreSQLConnection' [package "RPostgreSQL"] with 1 slot
.. ..@ Id: int [1:2] 12044 2
$ info :List of 8
..$ host : chr ""
..$ port : chr "5432"
...
..$ rsId : list()
$ disco:<environment: 0x0000000011160fd8>
- attr(*, "class")= chr [1:3] "src_postgres" "src_sql" "src"
pg$con %>% db_drop_table(table='Tablename') # This drops the table 'Tablename'.
pg$con
会破坏封装性。也就是说,con
字段或插槽明天可能会消失,你甚至不应该知道它的存在。我开发了一个相关的包dplyr.spark,想知道人们对于当"指向"它的所有tbl被垃圾回收时,如何删除SQL表的看法。在tbl创建时会有一个标志和一种修改方式(临时)。通过这种方式,remove命令将只是"rm"。如果你改变了主意,可以通过'persist'或'unpersist'来保存或取消保存tbl。 - piccolbo
db_drop_table
函数被导出,但没有文档记录。它应该是通用 API 的一部分。你仍然需要自己创建与数据库的连接。如何做到这一点在 RSQLite 包中有清晰的文档说明,只需要一行代码即可。 - joran