首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查MySQL上是否存在一个表

检查MySQL上是否存在一个表
EN

Stack Overflow用户
提问于 2013-08-05 22:13:37
回答 4查看 19.8K关注 0票数 10

我正在尝试检查表是否存在,如果存在,则执行一些操作。我不断地收到一个错误,告诉我这个表不存在,而不是完成我的检查。以下是代码:

代码语言:javascript
复制
$tableExists = $db->prepare("SHOW TABLES LIKE $table_array");
$tableExists->execute();
if($tableExists->rowCount() > 0) {
   // do some code
 } else {
   echo "Unable to add because table does not exists";
}

更新:根据下面的建议,我现在做以下工作:

代码语言:javascript
复制
$tableExists = $db->prepare("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ?"); 
$tableExists->execute(array($table_array)); 
if(!is_null($tableExist)) { 
    //do something
} else {
    echo "table does not exist;
}

但是,if语句似乎无法确定表是否存在。我还能做什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-08-05 22:17:33

尝试使用information_schema来询问表是否存在。有点像

代码语言:javascript
复制
SELECT 
  * 
FROM
  information_schema 
WHERE TABLE_NAME = "$table_array" 

查看一下information_schema保存的所有内容,您会对它存储的数据库信息感到惊喜:)

票数 11
EN

Stack Overflow用户

发布于 2013-08-05 22:15:41

代码语言:javascript
复制
if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$table."'"))==1) 
    echo "Table exists";
else echo "Table does not exist";

参考文献:check if MySQL table exists or not

票数 2
EN

Stack Overflow用户

发布于 2013-08-05 22:24:16

试试这个:

代码语言:javascript
复制
select case when (select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_NAME='offices') = 1 then 'exists' else 'does not exist' end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18068671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档