如何转储MySQL中每个表的DESC(以csv格式)

时间:2010-01-27 19:35:38

标签: mysqldump

我需要为数据库中的几百个表生成DESC TableName的CSV文件。

你能帮帮我吗?我确信有一种方法可以使用Bash脚本。我尝试使用mysqldump,但它用于数据转储和结构的sql转储:(

谢谢!

1 个答案:

答案 0 :(得分:1)

在MySQL 5.0之后,您可以使用information_schema(http://dev.mysql.com/doc/refman/5.0/en/information-schema.html

示例:

SELECT      CASE ordinal_position 
                WHEN 1 THEN CONCAT('Table ', table_schema, '.', table_name, '\n')
                ELSE ''
            END
,           column_name
,           column_type
,           is_nullable
,           column_key
,           column_default
,           extra
FROM        information_schema.columns
WHERE       table_schema = SCHEMA()
ORDER BY    table_schema
,           table_name
,           ordinal_position

此处的输出应与您从DESC获得的内容相同(但不相同)

请注意,在这种情况下,查询仅报告当前数据库中的表。调整WHERE子句以满足您的要求。

还有一句警告:这些查询可能非常慢,尤其是如果他们第一次跑。