我正在寻找一种列出数据库中所有视图的方法.
SELECT table_name
FROM information_schema.views
WHERE information_schema.views.table_schema LIKE 'view%';
Run Code Online (Sandbox Code Playgroud)
但是这不起作用,返回一个空集.(我知道他们在那里!)
这些也失败了:
mysql> use information_schema;
Database changed
mysql> select * from views;
ERROR 1102 (42000): Incorrect database name 'mysql.bak'
mysql> select * from tables;
ERROR 1102 (42000): Incorrect database name 'mysql.bak'
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?
小智 274
SHOW FULL TABLES IN database_name WHERE TABLE_TYPE LIKE 'VIEW';
Run Code Online (Sandbox Code Playgroud)
Val*_*son 24
这是一种查找实例上每个数据库中所有视图的方法:
SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.tables
WHERE TABLE_TYPE LIKE 'VIEW';
Run Code Online (Sandbox Code Playgroud)
这会奏效.
USE INFORMATION_SCHEMA;
SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.tables
WHERE TABLE_TYPE LIKE 'VIEW';
Run Code Online (Sandbox Code Playgroud)
为了配合即将获得有关特定视图更多信息
即使有两个有效的答案
SHOW FULL TABLES IN your_db_name WHERE TABLE_TYPE LIKE 'VIEW';
SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.TABLES
WHERE TABLE_TYPE LIKE 'VIEW' AND TABLE_SCHEMA LIKE 'your_db_name';
Run Code Online (Sandbox Code Playgroud)
您可以应用以下内容(我认为更好):
SELECT TABLE_SCHEMA, TABLE_NAME
FROM information_schema.VIEWS
WHERE TABLE_SCHEMA LIKE 'your_db_name';
Run Code Online (Sandbox Code Playgroud)
更好地直接使用information_schema.VIEWS(现在观察是VIEWS而不是TABLES),因此您可以检索更多数据,DESC VIEWS用于更多详细信息:
+----------------------+---------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+---------------------------------+------+-----+---------+-------+
| TABLE_CATALOG | varchar(64) | YES | | NULL | |
| TABLE_SCHEMA | varchar(64) | YES | | NULL | |
| TABLE_NAME | varchar(64) | YES | | NULL | |
| VIEW_DEFINITION | longtext | YES | | NULL | |
| CHECK_OPTION | enum('NONE','LOCAL','CASCADED') | YES | | NULL | |
| IS_UPDATABLE | enum('NO','YES') | YES | | NULL | |
| DEFINER | varchar(93) | YES | | NULL | |
| SECURITY_TYPE | varchar(7) | YES | | NULL | |
| CHARACTER_SET_CLIENT | varchar(64) | NO | | NULL | |
| COLLATION_CONNECTION | varchar(64) | NO | | NULL | |
+----------------------+---------------------------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)
例如观察该VIEW_DEFINITION字段,因此您可以在操作中使用:
SELECT TABLE_SCHEMA, TABLE_NAME, VIEW_DEFINITION
FROM information_schema.VIEWS
WHERE TABLE_SCHEMA LIKE 'your_db_name';
Run Code Online (Sandbox Code Playgroud)
当然,您还有更多可用字段供您考虑。
| 归档时间: |
|
| 查看次数: |
142962 次 |
| 最近记录: |