단일 명령으로 데이터베이스의 모든 테이블 수정 테이블에서이 명령을 실행하고 싶습니다. ALTER TABLE `table_name` CONVERT

데이터베이스 내의 모든 테이블을 수정하는 단일 또는 한 줄 명령이 있습니까? 데이터베이스의 모든 테이블에서이 명령을 실행하고 싶습니다.

ALTER TABLE `table_name` CONVERT TO CHARACTER SET utf8;

내 목표는 문자 집합을 latin1에서 utf8로 모든 테이블로 수정하는 것입니다.

업데이트 : RDBMS는 MySQL입니다



답변

아니요, 그러한 명령은 없습니다. 그러나 당신이 할 수있는 일은 다음과 같이 SQL을 생성하는 빠른 쿼리를 작성하는 것입니다.

USE INFORMATION_SCHEMA;
SELECT
CONCAT("ALTER TABLE `", TABLE_SCHEMA,"`.`", TABLE_NAME, "` CONVERT TO CHARACTER SET UTF8;")
AS MySQLCMD FROM TABLES
WHERE TABLE_SCHEMA = "your_schema_goes_here";

그런 다음 출력을 실행하여 필요한 것을 수행 할 수 있습니다.

출처 :

http://forums.mysql.com/read.php?20,244395,244421#msg-244421


답변

가장 쉬운 방법 : 데이터베이스를 내 보냅니다. 텍스트 편집기에서 내 보낸 데이터베이스를 열고 “UTF8″등으로 찾기 / 바꾸기를 수행하십시오. 수정 된 데이터베이스를 다시 가져옵니다.


답변

MS SQL Server를 사용하는 경우 사용할 수있는 문서화되지 않은 저장 프로 시저 ms_foreachtable이 있습니다. 테이블 이름을? 성명서에서.

예를 들어

EXEC ms_foreachtable 'ALTER TABLE [?] .....'


답변