MYISAM 테이블을 INNODB 테이블로 변경

 

 

MYSQL 쿼리 프로시져 : 현재 선택된 DATABASE의 TABLE을 MYISMA에서 INNODB로 변경

DROP PROCEDURE IF EXISTS convertToInnodb;
DELIMITER //
CREATE PROCEDURE convertToInnodb()
BEGIN
mainloop: LOOP
  SELECT TABLE_NAME INTO @convertTable FROM information_schema.TABLES
  WHERE `TABLE_SCHEMA` LIKE DATABASE()
  AND `ENGINE` LIKE 'MyISAM' ORDER BY TABLE_NAME LIMIT 1;
  IF @convertTable IS NULL THEN
    LEAVE mainloop;
  END IF;
  SET @sqltext := CONCAT('ALTER TABLE `', DATABASE(), '`.`', @convertTable, '` ENGINE = INNODB');
  PREPARE convertTables FROM @sqltext;
  EXECUTE convertTables;
  DEALLOCATE PREPARE convertTables;
  SET @convertTable = NULL;
END LOOP mainloop;

END//
DELIMITER ;

CALL convertToInnodb();
DROP PROCEDURE IF EXISTS convertToInnodb;

 

PHP코드로 MYSQL 데이터베이스의 테이블을 MYISAM에서 INNODB로 변경

<?php

// Convert all MyISAM tables to INNODB tables in all non-special databases.
// Note: With MySQL less than 5.6, tables with a fulltext search index cannot be converted to INNODB and will be skipped.

if($argc < 4)
    exit("Usage: {$argv[0]} <host> <username> <password>\n");
$host = $argv[1];
$username = $argv[2];
$password = $argv[3];

// Connect to the database.
if(!mysql_connect($host, $username, $password))
    exit("Error opening database. " . mysql_error() . "\n");

// Get all databases except special ones that shouldn't be converted.
$databases = mysql_query("SHOW databases WHERE `Database` NOT IN ('mysql', 'information_schema', 'performance_schema')");
if($databases === false)
    exit("Error showing databases. " . mysql_error() . "\n");

while($db = mysql_fetch_array($databases))
{
    // Select the database.
    if(!mysql_select_db($db[0]))
        exit("Error selecting database: {$db[0]}. " . mysql_error() . "\n");
    printf("Database: %s\n", $db[0]);

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

    // Get all MyISAM tables in the database.
    $tables = mysql_query("SHOW table status WHERE Engine = 'MyISAM'");
    if($tables === false)
        exit("Error showing tables. " . mysql_error() . "\n");

    while($tbl = mysql_fetch_array($tables))
    {
        // Convert the table to INNODB.
        printf("--- Converting %s\n", $tbl[0]);
        if(mysql_query("ALTER TABLE `{$tbl[0]}` ENGINE = INNODB") === false)
            printf("--- --- Error altering table: {$tbl[0]}. " . mysql_error() . "\n");
    }
}

mysql_close();

?>

 

 

기타 또다른 참고 쿼리

SET @DATABASE_NAME = 'name_of_your_db';

SELECT  CONCAT('ALTER TABLE `', table_name, '` ENGINE=InnoDB;') AS sql_statements
FROM    information_schema.tables AS tb
WHERE   table_schema = @DATABASE_NAME
AND     `ENGINE` = 'MyISAM'
AND     `TABLE_TYPE` = 'BASE TABLE'
ORDER BY table_name DESC;

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 86311
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 78766
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 95513
18 REDIS 소개, 설치, 데이터 타입 테스트 file 졸리운_곰 2016.05.29 1438
17 FlumeNG + Kafka Plugin (플럼+카프카 플러그인) file 졸리운_곰 2016.05.29 1441
16 flume 설치 해보고 로그 수집하기 file 졸리운_곰 2016.05.29 1423
15 Flume NG version 설치 및 로그 수집 file 졸리운_곰 2016.05.29 1679
14 Flume(플럼) 참고 사이트 정리 졸리운_곰 2016.05.29 1833
13 Flume #2-2 간단한 사용예제 졸리운_곰 2016.05.29 1383
12 Flume #2-1 간단한 사용예제 졸리운_곰 2016.05.29 1438
11 Flume #1 소개 졸리운_곰 2016.05.29 1581
10 [Flume] Flume 설치부터 예제까지... 졸리운_곰 2016.05.29 1063
9 Running Apache Kafka on Windows without Cygwin file 졸리운_곰 2016.05.28 1644
8 Setting Up and Running Apache Kafka on Windows OS file 졸리운_곰 2016.05.28 1858
7 Apache Kafka 졸리운_곰 2016.05.28 1632
6 실시간 처리를 위한 분산 메시징 시스템 카프카(Kafka) file 졸리운_곰 2016.05.28 1881
5 Apache Kafka] 5. Zookeeper 트리 분석 2 졸리운_곰 2016.05.28 1385
4 Apache Kafka] 4. 모니터링하기 file 졸리운_곰 2016.05.28 1466
3 [Apache Kafka] 3. Producer/Consumer 구현하기 졸리운_곰 2016.05.28 1378
2 [apche kafka] Zookeeper 클러스터 구축 file 졸리운_곰 2016.05.28 1460
1 Kafka의 기본 구성 요소와 동작 file 졸리운_곰 2016.05.28 1942
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED