R和RMySQL,如何获取连接的数据库名称?

时间:2015-02-27 19:30:16

标签: mysql r s4

我通过RMySQL从R访问MySQL连接。 我找到了一个用于获取数据库/模式名称的MySQL命令

SELECT DATABASE();

所以我可以通过dbGetQuery()来调用它来从我的R脚本中获取它。

但是,我还发现调用summary(connection)会自动获取数据库,以及其他信息。

> summary(connection)
<MySQLConnection:(6746,0)> 
  User: root 
  Host: localhost 
  Dbname: my_database
  Connection type: Localhost via UNIX socket 
  No resultSet available

由于结果的快速性,我假设连接将该信息存储在R中,但我不知道如何访问其内容。

我尝试检查它的环境,甚至查看RMySQL的来源来理解它,但是我还没有足够的经验......

那么如何将Dbname作为变量(未打印)? 感谢Mx的问候和问候。

1 个答案:

答案 0 :(得分:1)

虽然,我不太明白为什么你想把数据库名称作为一个变量,你可以按如下方式捕获它:

db_info <- capture.output(mysqlDescribeConnection(MySQLcon, verbose = T))

请注意使用mysqlDescribeConnection(),而不是summary

可以将dbname作为输出向量的第四个元素进行访问:

db_info[4]
[1] "  Dbname: my_database "

如果您真的有计划将其用作变量,则需要进行一些字符串操作。

db <- strsplit(db_info[4], ' ')

final_dbname <- db[[1]][4]
[1] "my_database"