2017-11-27 16 views
1

원격 서버에서 모든 데이터베이스의 테이블에있는 열을 업데이트해야합니다. 이 모든 것을 한꺼번에 어떻게 처리 할 수 ​​있습니까? 나는 동일한 테이블을 가진 100 개 이상의 데이터베이스를 가지고 있습니다.MySQL - 모든 데이터베이스에서 열 데이터 유형을 변경하는 방법?

ALTER TABLE tablename MODIFY columnname VARCHAR(255); 
+0

나는 편평한 mysql 커맨드 라인 또는 클라이언트로 할 수 있다고 생각지 않는다. 최소한 모든 데이터베이스 이름과 bash 스크립트를 포함하는 파일을 사용해야합니다. 어느 언어로도 사용할 수 있습니다. Rubyst로서 나는 mysql2 gem과 간단한 루비 스크립트를 사용하여 당신을 추천 할 것이다. – tebayoso

답변

2

이 작업을 수행하는 스크립트를 내보내는 SQL 쿼리를 작성할 수 있습니다. 쿼리는 서버의 열을 설명하는 information_schema 테이블을보고 ALTER 쿼리 시퀀스를 생성합니다. 그런 다음 해당 쿼리를 실행합니다.

SELECT CONCAT(' ALTER TABLE `', TABLE_SCHEMA, '`.`', TABLE_NAME, 
       '` MODIFY `',COLUMN_NAME,'` VARCHAR(255);') ddl 
    FROM information_schema.`COLUMNS` 
WHERE TABLE_NAME = 'tablename' 
    AND COLUMN_NAME IN ('columnname') 

ALTER TABLE *.tablename 또는 그와 비슷한 것을 수행 할 온 리너가 없습니다.