检查表是不是存在于mysql中[重复]

Posted

技术标签:

【中文标题】检查表是不是存在于mysql中[重复]【英文标题】:Check if table exists in mysql [duplicate]检查表是否存在于mysql中[重复] 【发布时间】:2013-01-02 21:56:13 【问题描述】:

可能重复:mysql - check if table exists without using “select from”

我可以依靠这个查询来查明指定数据库中的表是否存在或者可能有一些限制吗?

SELECT
    `information_schema`.`TABLES`.`TABLE_NAME`
FROM
    `information_schema`.`TABLES`
WHERE
    `information_schema`.`TABLES`.`TABLE_SCHEMA` = 'my_database_name'
AND `information_schema`.`TABLES`.`TABLE_NAME` IN (
    'table_name',
    'table_name',
    'table_name',
    'table_name',
    'table_name',
    'table_name'
)

附: 我不需要创建表,只需要检查它是否存在。

【问题讨论】:

已回答:***.com/questions/8829102/… 这应该可以解决问题。你有理由怀疑它会起作用吗? @EricPetroelje 我认为这只适用于 mysql > 5 @Kirix - 你是对的。 【参考方案1】:

或者你可以使用这个(更长的查询)。

SELECT count(*)
FROM information_schema.tables
WHERE table_schema = 'databasename'
AND table_name = 'tablename'

【讨论】:

【参考方案2】:

您可以执行以下操作:

SHOW TABLES LIKE tablename;

根据 OP 的评论 - 编辑:

SQLFIDDLE DEMO

查看演示。它显示了这样的代码:

SHOW TABLES LIKE 'user%';

结果:

TABLES_IN_DB_2_8B528 (USER%)
user_images
users

【讨论】:

我有一组表格... @Kirix - 你可以做一个简单的SHOW TABLES 并在列表中搜索你正在寻找的那些。一个数据库不应该有那么多个表,这将是一个性能问题。 @Kirix 您可以将wildcardslike 运算符一起使用;)它有效,请查看提供的参考演示。 @EricPetroelje 是否可以在SHOW TABLES 中指定数据库?默认我使用其他数据库。 @Kirix - 是的,SHOW TABLES IN database_name 应该这样做。

以上是关于检查表是不是存在于mysql中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

检查 MySQL 上是不是存在表 [重复]

SQLAlchemy - MySQL - 检查现有表中是不是存在行[重复]

使用 PHP/PDO 检查数据库表是不是存在

MySQL 检查表是不是已经存在

检查mysql中是不是存在视图

Mysql - 检查行是不是存在