2010-01-27 2 views
2

데이터베이스에있는 수백 개의 테이블에 대해 DESC TableName의 CSV 파일을 생성해야합니다.MySQL의 각 테이블마다 DESC를 덤프하는 방법 (CSV 형식)

제발 도와 줄래? 나는 Bash 스크립트를 사용하는 방법이 있다고 확신한다. 나는 mysqldump를 사용하여 시도하지만

감사합니다 데이터 덤프 및 구조 :(의 SQL 덤프입니다

답변

1

을 5.0 일 이후에, 당신은 INFORMATION_SCHEMA를 사용할 수 있습니다 (http://dev.mysql.com/doc/refman/5.0/en/information-schema.html)

예 :!

당신이 주

DESC

에서 무엇을 얻을
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 

여기 출력은 동일합니다 (그러나 동일하지 않음)해야한다는이 경우, 쿼리 현재 데이터베이스의 테이블 만보고합니다. 요구 사항에 맞게 WHERE 절을 조정하십시오.

경고 단어 :이 쿼리는 매우 느릴 수 있습니다. 그들이 처음으로 달리는 경우.

+0

와우! 간단하게! 멋진 솔루션, Info에 대해 더 알고 싶습니다. 전에 스키마. Roland에게 감사 드려요. 당신은 저에게 일의 톤을 저장하고 수동 작업을하는 것을 싫어합니다! 다시 한 번 감사드립니다 :) – ThinkCode

+0

Table_name fix : CONCAT (table_schema, '.', table_name) Roland의 솔루션이 흔들립니다! – ThinkCode