【问题标题】:How can i check if the table mysql.proc exists如何检查表 mysql.proc 是否存在
【发布时间】:2011-03-02 11:10:52
【问题描述】:

我正在开发一个 WPF 应用程序,如果安装了 MySQL,它就会安装, 所以在安装之前我想检查mysql.proc 表是否存在。 我用谷歌搜索了一下,最后得到了一个查询

select * from information_schema.Tables 
   where Table_schema = Schema() and Table_Name = 'mysql.proc'

此查询返回一个空行。

我也尝试过简单的选择语句 select * from mysql.proc, 这将返回一个包含所有存储过程名称的表,但如果该表不存在,则会在 c# 代码中引发异常。

那么有什么方法可以让我从 c# 触发查询并根据 mysql.proc 表是否存在来获取布尔值?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    试试SHOW TABLES FROM mysql LIKE 'proc'。如果没有结果行,则表不存在。如果只有一行,则表存在。请注意,这种方法不能跨 RDBMS 移植,尽管这似乎不是您关心的问题。

    对于您的第一个查询,SCHEMA() 返回默认数据库,因此如果不是“mysql”,则查询将失败。同样,Table_Name 列中的数据不包含数据库名称,因此与 'mysql.proc' 比较总是会失败。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 2013-04-07
      • 2017-07-18
      • 1970-01-01
      • 2017-05-31
      • 2014-09-04
      • 2010-12-21
      相关资源
      最近更新 更多