MySQL 如何识别所有表中是否存在特定列
要识别列名称,请在MySQL中使用INFORMATION_SCHEMA.COLUMNS。以下是语法 –
select table_name,column_name
from INFORMATION_SCHEMA.COLUMNS
where table_schema = SCHEMA()
andcolumn_name='anyColumnName';
让我们实现上述查询,以便在所有表中识别具有其存在的列。在这里,我们正在查找列EmployeeAge的存在性 –
mysql> select table_name,column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = SCHEMA()
AND column_name='EmployeeAge';
这将生成以下输出,显示具有特定列“EmployeeAge”的表 –
+---------------+-------------+
| TABLE_NAME | COLUMN_NAME |
+---------------+-------------+
| demotable1153 | EmployeeAge |
| demotable1297 | EmployeeAge |
| demotable1303 | EmployeeAge |
| demotable1328 | EmployeeAge |
| demotable1378 | EmployeeAge |
| demotable1530 | EmployeeAge |
| demotable1559 | EmployeeAge |
| demotable1586 | EmployeeAge |
| demotable1798 | EmployeeAge |
| demotable1901 | EmployeeAge |
| demotable511 | EmployeeAge |
| demotable912 | EmployeeAge |
+---------------+-------------+
12 rows in set (0.00 sec)
为了证明这一点,让我们检查以上任何一个表的描述 –
mysql> desc demotable1153;
这将生成以下输出,显示在demotable1153中存在EmployeeAge列 –
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| EmployeeId | int(11) | NO | PRI | NULL | auto_increment |
| EmployeeName | varchar(40) | YES | MUL | NULL | |
| EmployeeAge | int(11) | YES | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
阅读更多:MySQL 教程
极客教程