如何在 RMysql 中检查条件 table 是否存在
How to check a condition whether table exist or not in RMysql
我想在 Shiny 应用程序中检查条件 mysql table 是否存在于特定数据库中。如果 table 不存在,它应该 return 一个空值。这是我的代码。
loadData <- function(){
db <- dbConnect(MySQL(), dbname = databaseName, host = host,
port = port, user = user, password = password)
res <- dbSendQuery(db, "SELECT * FROM some_table")
final_data <- dbFetch(res)
dbDisconnect(db)
return(final_data)
}
如果 some_table
在数据库中不存在,我想处理 dbSendQuery(db, "SELECT * FROM some_table")
抛出的异常。
请帮忙..
这是我的工作。也许还有其他更强大或更通用的东西?
只需 "show tables" 作为查询并检查结果中是否存在您的 table 姓名。
loadData <- function() {
db <- dbConnect(
MySQL(),
dbname = databaseName,
host = host,
port = port,
user = user,
password = password
)
rs <- dbSendQuery(con, "show tables")
table.frame <- fetch(rs, n = -1)
if ("some_table" %in% table.frame[, 1]) {
res <- dbSendQuery(db, "SELECT * FROM some_table")
final_data <- dbFetch(res)
dbDisconnect(db)
return(final_data)
} else {
return(NULL)
}
}
如果 table 不存在,这将 return 为空:
...
res <- dbSendQuery(db, "SELECT nullif(count(1),0) tableexists FROM information_schema.tables WHERE table_name='some_table'")
...
如果您只对 table 是否存在于某一特定模式中感兴趣,您可能还想包括 AND table_schema='your schema'
我想在 Shiny 应用程序中检查条件 mysql table 是否存在于特定数据库中。如果 table 不存在,它应该 return 一个空值。这是我的代码。
loadData <- function(){
db <- dbConnect(MySQL(), dbname = databaseName, host = host,
port = port, user = user, password = password)
res <- dbSendQuery(db, "SELECT * FROM some_table")
final_data <- dbFetch(res)
dbDisconnect(db)
return(final_data)
}
如果 some_table
在数据库中不存在,我想处理 dbSendQuery(db, "SELECT * FROM some_table")
抛出的异常。
请帮忙..
这是我的工作。也许还有其他更强大或更通用的东西?
只需 "show tables" 作为查询并检查结果中是否存在您的 table 姓名。
loadData <- function() {
db <- dbConnect(
MySQL(),
dbname = databaseName,
host = host,
port = port,
user = user,
password = password
)
rs <- dbSendQuery(con, "show tables")
table.frame <- fetch(rs, n = -1)
if ("some_table" %in% table.frame[, 1]) {
res <- dbSendQuery(db, "SELECT * FROM some_table")
final_data <- dbFetch(res)
dbDisconnect(db)
return(final_data)
} else {
return(NULL)
}
}
如果 table 不存在,这将 return 为空:
...
res <- dbSendQuery(db, "SELECT nullif(count(1),0) tableexists FROM information_schema.tables WHERE table_name='some_table'")
...
如果您只对 table 是否存在于某一特定模式中感兴趣,您可能还想包括 AND table_schema='your schema'