저장 프로시저를 사용하여 MySQL 스키마를 GitHub Wiki Markdown으로 변환하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-27 22:50:10
원래의
702명이 탐색했습니다.

How to Convert a MySQL Schema to GitHub Wiki Markdown Using Stored Procedures?

MySQL 스키마를 GitHub Wiki Markdown으로 변환

원래 문제는 MySQL 데이터베이스 스키마를 Markdown 형식, 특히 테이블로 내보내는 것에 대한 우려를 불러일으켰습니다. 이 문제를 해결하기 위해 자세한 응답은 두 개의 저장 프로시저를 사용하는 솔루션을 제공합니다.

첫 번째 저장 프로시저: explainTables_v2a

이 프로시저는 데이터베이스 이름을 입력으로 사용하고 해당 데이터베이스의 모든 테이블에 대해 DESCRIBE myTable의 출력과 유사한 출력을 생성합니다. INFORMATION_SCHEMA 데이터베이스를 활용하고 결과를 조작하여 보다 자세하고 체계적인 출력을 제공함으로써 이를 달성합니다. 출력은 Reporting101a 데이터베이스의 reportDataDefs 테이블에 저장됩니다.

매개변수:

  • dbName: 보고할 데이터베이스 이름.
  • theSession: 이에 대해 할당된 세션 번호를 보유하는 OUT 매개변수 Operation.
  • deleteSessionRows: 출력을 생성한 후 이 세션에 대한 reportDataDefs 테이블에서 행을 삭제할지 여부를 나타내는 부울입니다.
  • callTheSecondStoredProc: 두 번째 저장 프로시저를 자동으로 호출할지 여부를 나타내는 부울입니다. 인쇄(DESCRIBE와 유사) 출력.

단계:

  1. 중간 데이터를 저장할 임시 테이블을 생성합니다.
  2. 다음에서 임시 테이블에 데이터를 삽입합니다. INFORMATION_SCHEMA 데이터베이스(테이블 및 열 이름, 유형, Null 허용 여부, 키 및 추가 사항 고려)
  3. 열 및 유형 최대 길이에 대한 추가 열과 null, 키, 기본값 및 추가 값에 대한 카운터를 포함하여 임시 테이블의 데이터로 reportDataDefs 테이블을 채웁니다.
  4. callTheSecondStoredProc인 경우 TRUE이면 보기 좋게 인쇄된 출력을 생성하고 이를 reportOutput에 추가하는 Print_Tables_Like_Describe라는 또 다른 저장 프로시저를 호출합니다. table.
  5. callTheSecondStoredProc가 FALSE인 경우 지정된 세션 번호에 대해 reportDataDefs 테이블에 있는 데이터의 결과 집합을 반환합니다.

두 번째 저장 프로시저: Print_Tables_Like_Describe

이 절차에서는 세션 번호를 입력으로 사용합니다. 그리고 reportDataDefs 테이블에서 데이터를 검색합니다. 그런 다음 DESCRIBE myTable 출력과 유사하지만 지정된 데이터베이스의 모든 테이블에 대해 Markdown 형식의 출력을 생성합니다.

단계:

  1. reportDataDefs 테이블의 행을 반복하여 필요한 데이터를 추출합니다.
  2. 필드 이름, 유형, null 허용 여부, 키, 기본값 및 추가 정보가 포함된 각 테이블의 테이블 헤더를 생성합니다. .
  3. 각 열의 데이터 형식을 일관된 너비와 정렬로 지정합니다.
  4. 형식을 구분합니다. 세로 막대가 있는 열입니다.
  5. 서식화된 출력을 결과 집합으로 반환합니다.

사용법:

저장 프로시저를 사용하려면 사용자는 필수 데이터베이스 이름과 기타 매개변수를 제공할 수 있습니다. 사용 예는 다음과 같습니다.

SET @theOutVar =-1; -- A variable used as the OUT variable below

-- Note: with `TRUE` as the 4th parameter, this is a one call deal. Meaning, you are done.
call Reporting101a.describeTables_v2a('stackoverflow',@theOutVar,false,true);

-- Primarily used if the 4th parameter above is false
call Reporting101a.Print_Tables_Like_Describe(@theOutVar); -- loads data for prettier results in chunk format.
로그인 후 복사

이 사용은 먼저 Reporting101a.describeTables_v2a 저장 프로시저를 호출하고 세션 번호를 검색합니다. 그런 다음 해당 세션 번호를 사용하여 Reporting101a.Print_Tables_Like_Describe 저장 프로시저를 자동으로 호출하여 보기 좋게 인쇄된 출력을 생성합니다. 출력은 마크다운 형식의 테이블로 변환하는 등 추가로 사용 및 형식화할 수 있는 결과 세트로 반환됩니다.

위 내용은 저장 프로시저를 사용하여 MySQL 스키마를 GitHub Wiki Markdown으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿