如何检查 MySQL 表中是否存在某列?

mysqlmysqli database更新于 2024/1/24 14:31:00

要了解某列是否存在,我们有以下方法 −

  • 借助 DESC 命令
  • 使用 SHOW 命令

首先,我们将创建一个包含列的表 −

mysql> CREATE table ColumnExistDemo
-> (
-> UniqueId int,
-> UniqueName varchar(200),
-> UniqueAddress varchar(200)
-> );
Query OK, 0 rows affected (0.57 sec)

在第一种方法中,我们将获得包含有意义信息的整个列名。语法如下 −

DESC yourTableName;

让我们应用上述查询来检查列名是否存在。但是,这种方法并不好,因为它会显示所有列。

mysql> DESC ColumnExistDemo;

以下是输出 −

+---------------+--------------+------+-----+---------+-------+
| Field         | Type         | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| UniqueId      | int(11)      | YES  |     | NULL    |       |
| UniqueName    | varchar(200) | YES  |     | NULL    |       | 
| UniqueAddress | varchar(200) | YES  |     | NULL    |       |
+---------------+--------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

第二种方法更好,因为我们可以检查单个列。语法如下 −

SHOW COLUMNS from `yourTableName` LIKE 'yourColumnName';

现在,我正在应用上述查询来检查列是否存在。查询如下 −

mysql> SHOW COLUMNS from `ColumnExistDemo` LIKE 'UniqueName';

以下是输出 −

+------------+--------------+------+-----+---------+-------+
| Field      | Type         | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+-------+
| UniqueName | varchar(200) | YES  |     | NULL    |       |
+------------+--------------+------+-----+---------+-------+
1 row in set (0.00 sec)

相关文章