首页 > 解决方案 > 使用 MYSQL,如果表已经存在,我如何查询它?

问题描述

我正在编写迁移,并且仅当表存在于数据库中时才尝试查询表。在某些环境中它会存在,而在其他环境中它不会存在,这就是我要检查它是否存在的原因。感兴趣的表称为 OLD_PASSWORD。我执行以下操作。

SELECT ID, PASSWORD
      FROM OLD_PASSWORD;
      WHERE EXISTS 
(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'OLD_PASSWORD);

这失败了'.dbcSQLSyntaxErrorException:找不到表“USER_OLD_PASSWORDS”;' 这是有道理的,因为它不会存在于某些环境中。

我也尝试过类似的东西

IF (EXISTS (SELECT *
             FROM   INFORMATION_SCHEMA.TABLES
             WHERE  TABLE_NAME = 'OLD_PASSWORD'))
  BEGIN
      SELECT ID,
             PASSWORD
      FROM   OLD_PASSWORD
  END 

但它与mysql不兼容。

标签: mysql

解决方案


推荐阅读