我正在开发一个 WPF 应用程序,如果安装了 MySQL,该应用程序也会安装,
所以在安装之前我想检查mysql.proc
表是否存在。
我用谷歌搜索了一下,最后得到了一个查询
select * from information_schema.Tables
where Table_schema = Schema() and Table_Name = 'mysql.proc'
此查询返回一个空行。
我也尝试过简单的选择语句
从mysql.proc中选择*
,
这会返回一个包含所有存储过程名称的表,但如果该表不存在,则会在 C# 代码中引发异常。
那么有没有什么方法可以让我从 C# 发起查询并根据 mysql.proc
表是否存在获取 bool 值?
最佳答案
尝试从 mysql LIKE 'proc' 中显示表
。如果没有结果行,则该表不存在。如果有一行,则该表存在。请注意,这种方法不能跨 RDBMS 移植,尽管这似乎不是您关心的问题。
对于您的第一个查询,SCHEMA()
返回默认数据库,因此如果不是“mysql”,查询将失败。同样,Table_Name
列中的数据不包含数据库名称,因此与“mysql.proc”进行比较始终会失败。
关于mysql - 如何检查表 mysql.proc 是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5166644/