Creative Wrong Answer

테이블 명세서등을 만들때 기존에 구축해놓은 데이터 베이스의 목록을 뽑아야 할 필요가 생긴다.


이때 사용하는 쿼리


SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, DATA_TYPE, IS_NULLABLE /* ETC */

FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql')

ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;


Where의 not in 조건에 목록에서 빠져야하는 다른 디비가 있다면 쭉 적어주면 된다.


기본적으로 적혀있는 세개의 테이블은 기본 설정 테이블이라서 항상 적히게 된다. 



보통 칼럼을 적을때 사이즈를 같이 표시 하게 되는데 이때는


SELECT 

  TABLE_SCHEMA, 

  TABLE_NAME, 

  COLUMN_NAME, 

  CONCAT(DATA_TYPE,'(',IFNULL(CHARACTER_MAXIMUM_LENGTH,IFNULL(NUMERIC_PRECISION,'')),')') TYPE, 

  IS_NULLABLE

FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_SCHEMA NOT IN ('information_schema', 'performance_schema', 'mysql', 'isb_stg', 'isb_prd')

ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;


이런식으로 만들어주면 된다. 


나온 데이터를 전체 선택하고 export~

저작자 표시 비영리 동일 조건 변경 허락
신고

Comment 0