当前位置: 首页 > 面试题库 >

MySQL,使用SQL检查表中是否存在列

麹鸿煊
2023-03-14
问题内容

我正在尝试编写一个查询,该查询将检查MySQL中的特定表是否具有特定列,如果没有,则创建它。否则什么都不做。在任何企业级数据库中,这实际上都是一个简单的过程,但是MySQL似乎是一个例外。

我以为

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.COLUMNS 
           WHERE TABLE_NAME='prefix_topic' AND column_name='topic_last_update') 
BEGIN 
ALTER TABLE `prefix_topic` ADD `topic_last_update` DATETIME NOT NULL;
UPDATE `prefix_topic` SET `topic_last_update` = `topic_date_add`;
END;

可以工作,但是失败很严重。有办法吗?


问题答案:

这对我来说很好。

SHOW COLUMNS FROM `table` LIKE 'fieldname';

使用PHP就像…

$result = mysql_query("SHOW COLUMNS FROM `table` LIKE 'fieldname'");
$exists = (mysql_num_rows($result))?TRUE:FALSE;


 类似资料:
  • 如果表已经存在,如何检查TarantoolSQL?

  • 问题内容: 我希望这是关于如何使用SQL语句检查SQL Server 2000/2005中是否存在表的最终讨论。 当您用Google搜索答案时,会得到很多不同的答案。有官方/后向和向前兼容的方式吗? 这是两种可能的方法。两种方法中的哪一种是标准/最佳方法? 第一种方式: 第二种方式: MySQL提供的简单 陈述。我正在寻找类似的东西。 问题答案: 对于此类查询,最好始终使用INFORMATION_

  • 问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: MySQL检查表是否存在而不会引发异常 我的项目中有一个动态mysql查询生成器,可从不同的表创建选择查询。 我需要检查当前处理表是否存在。 假设我的表是table1,table2和table3。我的代码是这样的: 我该如何进行检查(请告诉我最简单的方法)。 问题答案: 更新的mysqli版本: 原始mysql版本: 从PHP

  • 问题内容: 我有一个嵌入了数据库的桌面应用程序。当我执行程序时,我需要检查特定的表是否存在,如果不存在则创建它。 给我的数据库一个名为conn的Connection对象,我该如何检查呢? 问题答案: 您可以使用可用的元数据: 有关更多详细信息,请参见此处。还要注意JavaDoc中的注意事项。

  • 问题内容: 理论上听起来很简单,但是我已经做了很多研究,但很难弄清楚。 我如何检查MySQL表是否存在以及它是否在执行某些操作。(我猜一个简单的php if / else语句可以解决这个问题) 有没有办法做到这一点? 这是我对cwallenpoole的响应所做的: 问题答案: 诚然,它比Python惯用语言更具有Python风格,但另一方面,您不必担心要处理大量额外数据。 编辑 因此,截至我撰写此

  • 问题内容: 在一个初级Oracle开发人员职位的面试中有人问我这个问题,面试官承认这是一个艰难的过程: 编写查询以检查表’employees_hist’是否与表’employees’完全相同。任何想法如何去做? 编辑:考虑到表可以有重复的记录,因此在这种情况下,简单的MINUS将不起作用。 例子 这两个是不一样的。 问题答案: 解决重复项的一种可能的解决方案是创建一个子查询,该子查询对两个表执行U