2011-12-16 6 views
1

데이터베이스 데이터가 있다고 가정하면 다음과 같이 나타납니다."show databases"쿼리 결과 집합에서 데이터를 현명하게 조작하는 방법

show tables; 이제 난에 표시되는 각 데이터베이스를 통해가는 과정을 만들려면 대신 개별적으로 "각 테이블 SELECT * FROM"실행의


표 2

표 3


"데이터베이스 보여주기"; resultset을 실행 한 다음 해당 데이터베이스의 각 테이블에서 select *를 실행합니다. 결과 집합을 아래로 스크롤 할 커서를 사용하여 변수에 각 데이터베이스 이름을 저장 한 다음 동일한 방식으로 해당 데이터베이스의 각 테이블에서 select 문을 실행하는 방법을 생각했습니다. 커서를 SELECT 문과 UPDATE 문에만 사용한다는 사실을 알고 있기 때문에 누군가이 커서를 사용하는 방법에 대해 친절하게 도와 줄 수 있습니까?

btw 나는 MYSQL을 사용합니다.

답변

1
난 당신이 이렇게하는 이유를 묻는 삼가 것

. 의사 코드의 일반적인 전략은 다음과 같습니다.

연결 MySQL 서버에 당신의 마음에 드는 도구/프로그래밍 언어와 [. 괄호 안의 단어 (SQL 명령과 테이블) MySQL 서버에서 실행됩니다] :

-- (USE information_schema;) 

for db in (select distinct table_schema from tables;) 
do:  
    for table in (select table_name from tables where table_schema='$db';) 
    do: 
     select field,column,attribute from $table; 
    done 
done 

좋은 운!

1

당신이 infromation_Schema에서 대신 쿼리를 얻을 수있는 '쇼 datbases'

+0

나는 당신에게 jess를주지 않았다. Information_Schema 자체는 mysql dbms에 관한 시스템 정보를 저장하는 데이터베이스입니다. 또한 테이블 이름, 테이블 열 유형 및 이름이있는 "테이블"테이블을 보유하고 있습니다. 내 관심사는 테이블 이름을 하나씩 꺼내 SELECT 그들에 대한 질문. 어떻게해야합니까? –

+0

이제 show 대신 select 문을 사용하여 커서를 사용할 수 있습니다. –

관련 문제