我需要为数据库中的几百个表生成DESC TableName的CSV文件。
你能帮帮我吗?我确信有一种方法可以使用Bash脚本。我尝试使用mysqldump,但它用于数据转储和结构的sql转储:(
谢谢!
答案 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
子句以满足您的要求。
还有一句警告:这些查询可能非常慢,尤其是如果他们第一次跑。