R和RMySQL,如何获取连接的数据库名称?
R and RMySQL, how do I get the database name of the connection?
我正在通过 RMySQL 从 R 访问 MySQL 连接。
我找到了一个 MySQL 命令来获取 database/schema 名称
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 的感谢和问候。
虽然不太明白为什么要把数据库名作为变量,可以这样抓取:
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"
我正在通过 RMySQL 从 R 访问 MySQL 连接。 我找到了一个 MySQL 命令来获取 database/schema 名称
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 的感谢和问候。
虽然不太明白为什么要把数据库名作为变量,可以这样抓取:
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"