mysql - 如何检查表 mysql.proc 是否存在

标签 mysql

我正在开发一个 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/

相关文章:

mysql - 定义用于 GROUP BY 的条件

php - 用户可以使用 php 中的 session 访问管理页面

Mysql 选择日期时间,大于时间戳

python - sqlalchemy 编码 - 从其他应用程序访问表

mysql - 无法理解。这是子查询吗?

php - 实时/快速 mysql 查询生成器/查看器

php - 对于每个多重选择插入值

MYSQL查询显示客队名称和主队名称

MySQL 和 SQL 成员资格提供程序 : Can it be set to not use ints?

php - MySQL 中的 blob\text 图像返回 NULL