Answers:
select column_name from information_schema.columns where table_name='table'
show create table <table_name>
您将表名用纯文本代替了<table_name>。这也给出了类型,而您的一个非常适合于上市。
我自己发现的最佳解决方案是desc table_name
命令。有关更多信息,请参见MySQL表列表。该命令提供了一个数据库表的描述,而这正是我试图找出的表。
要确保您列出当前数据库的表中的列,请使用DATABASE()或SCHEMA()函数。如果您不在当前数据库中,则返回NULL。此查询将按定义列的顺序显示表中的列:
SELECT column_name,column_type
FROM information_schema.columns
WHERE table_schema = DATABASE()
AND table_name='table'
ORDER BY ordinal_position;
我不确定我是否理解表标题的含义,但是您可以从INFORMATION_SCHEMA中获取有关表及其列的大多数信息
您如何看待各个表格标题?
你是说表注释吗?
use stack;
create table t(v integer primary key) comment 'My Special Table';
show tables;
+-----------------+
| Tables_in_stack |
+-----------------+
| t |
+-----------------+
select table_name, table_comment from information_schema.tables where table_name='t';
+------------+------------------+
| table_name | table_comment |
+------------+------------------+
| t | My Special Table |
+------------+------------------+
SHOW COLUMNS FROM mydb.mytable;
其中mydb-是包含所需表的数据库
mytable-需要的表
它返回列的信息(例如列的名称,类型等)
你需要加入information_schema.tables
并information_schema.columns
一起获得的表和字段细节的列表。
information_schema.columns
不仅显示有关表格的详细信息,还显示视图。无法从该系统视图中仅过滤表详细信息。
因此,您需要加入。
查询示例:
select t.TABLE_SCHEMA, t.TABLE_NAME, c.COLUMN_NAME, c.COLUMN_TYPE, c.DATA_TYPE
from information_schema.tables t , information_schema.columns c where 2=2
and t.table_schema=c.table_schema
and t.table_name=c.table_name
and t.table_type ='BASE TABLE'
order by t.table_schema, t.table_name, c.column_name
;
desc
命令的最底层的解决方案。很好奇,它是最短的,但是投票最少。对我来说,这也是最好的。