MySQL检查表是否已经存在 [英] MySQL check if table already exists

查看:109
本文介绍了MySQL检查表是否已经存在的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的MySQL数据库中有几个表。它们具有某种命名约定,例如。

I have couple of tables in my MySQL database. They have a certain naming convention such as.

tbl_1_alpha
tbl_1_beta
tbl_1_alpha2
tbl_2_beta
tbl_3_alpha2

现在我想检查数据库中是否存在给定的表。

Now I want to check wether a given table is already exists in the database.

例如。


  • $ name ='tbl_1_alpha'->存在

  • $ name ='tbl_1_alpha2'->存在

  • $ name ='tbl_1_alpha3' ->不存在

  • $name = 'tbl_1_alpha' -> exists
  • $name = 'tbl_1_alpha2' -> exists
  • $name = 'tbl_1_alpha3' -> does not exists

要获得结果,我使用了以下函数

To get the result I used the following functions

 public function exists($name)
    {

        $query = "SHOW TABLES LIKE '$name%'";

        $result = $this->db->query($query);

        if ($result->num_rows() > 0) {
            return true;
        }
        return false;

    }

对于给定的 $ name = tbl_1_alpha ,它返回 true 。但是,当我删除表 tbl_1_alpha 时,它仍然返回 true ,因为它将名称与 tbl_1_alpha2相匹配。我该如何避免呢?

for a given $name = tbl_1_alpha it return true. But When I delete the table tbl_1_alpha it still returns true because it matches the name to tbl_1_alpha2. How can I avoid that?

有人可以帮助我匹配确切的表名并弄清楚它是否已经存在吗?

Can anyone help me to match the exact table name and figure out wether it is already exist or not?

推荐答案

无需查询。只需运行此

$this->db->table_exists('customer');

表数据

示例

$query = $this->db->table_exists('customer');
$count = count($query);

if (empty($count)) {
    echo "No Table Found";
}
elseif ($count == 1) {
    echo "Oopzz! There is table";
}
elseif ($count >1) {
    echo "Ohh !! There are many tables";
}

这篇关于MySQL检查表是否已经存在的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆