在MySQL工作台中,如何搜索可以位于任何架构中的列。基本上,我正在寻找一个名为"notification“的列,我希望搜索该列的所有模式。
在这个屏幕截图中,我知道有一个名为"activated_at“的列,但是当我在高亮显示所有表后搜索它(也使用select all命令),它什么也找不到。为什么?
但是如果我运行下面的查询,它能够找到列,那么为什么不使用GUI呢?
SELECT
table_schema,
table_name,
column_name,
data_type,
ordinal_position
FROM INFORMATION_SCHEMA.COLUMNS
WHERE column_name = 'activated_at' ; 
发布于 2017-01-10 03:13:01
打开一个新的Query选项卡--从File菜单选项中选择New Query项(第二个向下)。
然后,它与MySQL工具完全相同。
use information_schema;
show tables;
SELECT * FROM columns;将给出结果:
Tables_in_information_schema
-----------------------------
CHARACTER_SETS
COLLATIONS
COLLATION_CHARACTER_SET_APPLICABILITY
COLUMNS <<--
COLUMN_PRIVILEGES
..
<more columns snipped>
..由于某些原因,information_schema数据库没有出现在GUI中的数据库列表中,但是如果您显式地“使用”它,它就会工作。
Et voilà
发布于 2017-01-11 08:07:21
如果您知道database name,可以使用workbench GUI找到列名:
database name并选择Schema Inspector:
Columns选项卡。在那里,您将找到所有列的详细信息和表名。
如果您想在所有数据库中搜索,则可以使用information_schema.columns
desc information_schema.columns;
+--------------------------+---------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------------------+---------------------+------+-----+---------+-------+
| TABLE_CATALOG | varchar(512) | NO | | | |
| TABLE_SCHEMA | varchar(64) | NO | | | |
| TABLE_NAME | varchar(64) | NO | | | |
| COLUMN_NAME | varchar(64) | NO | | | |
| ORDINAL_POSITION | bigint(21) unsigned | NO | | 0 | |
| COLUMN_DEFAULT | longtext | YES | | NULL | |
| IS_NULLABLE | varchar(3) | NO | | | |
| DATA_TYPE | varchar(64) | NO | | | |
| CHARACTER_MAXIMUM_LENGTH | bigint(21) unsigned | YES | | NULL | |
| CHARACTER_OCTET_LENGTH | bigint(21) unsigned | YES | | NULL | |
| NUMERIC_PRECISION | bigint(21) unsigned | YES | | NULL | |
| NUMERIC_SCALE | bigint(21) unsigned | YES | | NULL | |
| DATETIME_PRECISION | bigint(21) unsigned | YES | | NULL | |
| CHARACTER_SET_NAME | varchar(32) | YES | | NULL | |
| COLLATION_NAME | varchar(32) | YES | | NULL | |
| COLUMN_TYPE | longtext | NO | | NULL | |
| COLUMN_KEY | varchar(3) | NO | | | |
| EXTRA | varchar(30) | NO | | | |
| PRIVILEGES | varchar(80) | NO | | | |
| COLUMN_COMMENT | varchar(1024) | NO | | | |
| GENERATION_EXPRESSION | longtext | NO | | NULL | |
+--------------------------+---------------------+------+-----+---------+-------+
21 rows in set (0.16 sec)使用此查询查找列notification,这将给出数据库名称、表名和列名。
select table_schema, table_name, column_name from information_schema.columns where column_name like '%notification%';我希望这能帮到你!
https://dba.stackexchange.com/questions/160489
复制相似问题