首页 > 解决方案 > 检查mysql中是否存在列

问题描述

如何检查表中是否存在列,如果不存在则添加?(我使用的是mysql)

IF EXISTS(SELECT * FROM sys.columns
WHERE Name = N'columnName' AND OBJECT_ID = OBJECT_ID(N'tableName'))
BEGIN
PRINT 'Your Column Exists'
END

这是一个示例。我从网上得到的结果是旧版本的 mysql。我需要最新版本的答案(mysql server 2019 及更高版本)。我该如何解决?

标签: mysqlmysql-workbench

解决方案


information_schema您可以从数据库中访问此类信息。它包含一个columns表。

information_schema数据库是 ISO SQL 的一部分,并在所有 SQL 服务器上实现:

这是一个便携式查询:

SELECT count(*) FROM information_schema.columns
WHERE table_schema = 'thedatabase'
  AND table_name = 'thetable'
  AND column_name = 'thecolumn';

推荐阅读