MySQL检查表是否已经存在 [英] MySQL check if table already exists
问题描述
我的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屋!