1
원격 서버에서 모든 데이터베이스의 테이블에있는 열을 업데이트해야합니다. 이 모든 것을 한꺼번에 어떻게 처리 할 수 있습니까? 나는 동일한 테이블을 가진 100 개 이상의 데이터베이스를 가지고 있습니다.MySQL - 모든 데이터베이스에서 열 데이터 유형을 변경하는 방법?
ALTER TABLE tablename MODIFY columnname VARCHAR(255);
원격 서버에서 모든 데이터베이스의 테이블에있는 열을 업데이트해야합니다. 이 모든 것을 한꺼번에 어떻게 처리 할 수 있습니까? 나는 동일한 테이블을 가진 100 개 이상의 데이터베이스를 가지고 있습니다.MySQL - 모든 데이터베이스에서 열 데이터 유형을 변경하는 방법?
ALTER TABLE tablename MODIFY columnname VARCHAR(255);
이 작업을 수행하는 스크립트를 내보내는 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
또는 그와 비슷한 것을 수행 할 온 리너가 없습니다.
나는 편평한 mysql 커맨드 라인 또는 클라이언트로 할 수 있다고 생각지 않는다. 최소한 모든 데이터베이스 이름과 bash 스크립트를 포함하는 파일을 사용해야합니다. 어느 언어로도 사용할 수 있습니다. Rubyst로서 나는 mysql2 gem과 간단한 루비 스크립트를 사용하여 당신을 추천 할 것이다. – tebayoso